Ответы об использовании atoi () или sscanf () для преобразования элементов argv [] из строк в действительные целые числа находятся прямо на месте.
Однако в вашем тестовом примере есть еще одна проблема. Возвращаемое значение system()
- это состояние выхода для процесса, который был запущен, что более чем зависит от платформы. Однако на большинстве платформ все устроено так, что значение 0
означает, что команда выполнилась нормально и в конечном итоге вызвала саму exit(0)
. Windows так много соответствует.
Строка cout<<system(...)
печатает это значение состояния. На многих платформах (особенно POSIX-совместимых), если процесс запущен без аварийного завершения, младший байт кода состояния будет равен нулю, а старший байт будет значением, переданным exit()
, при условии, что это значение равно 255 или менее.
На самом деле использование состояния выхода для передачи гораздо большего количества информации, чем просто успех / неудача, родительскому процессу сильно зависит от платформы, и есть гораздо лучшие способы сделать это.