Предположим, я хотел открыть программу через команду (используя argc и argv). Вы получите название своей программы, откройте программу. Он дает вам.exe. Затем, как только ваш program.exe будет запущен, добавьте к нему еще один аргумент, такой как (program.exe open), который должен открыть что-то в вашей программе.
if (argc >= 5){
if (int(argv[1]) == 1){
function1();
function2();
function3();
}
}
В основном в этом случае, если пользователь должен был ввести program.exe 1, (1 является открытием в этом случае), он должен выполнять следующие функции. Почему это неверно логически? (поскольку ничего не отображается)
Что вам нужно, так это:
if (argc >= 2){ // the argc is count of supplied argument
// including executable name
if ( (argv[1][0]-'0') == 1){
//argv[1] will be "1"
//so take first character using argv[1][0]--> gives '1'-->49
//substract ASCII value of 0 i.e. 48
//Note: - This will only work for 0-9 as supplied argument
function1();
function2();
function3();
}
}
Ваше преобразование argv [1] в int не работает. Вы можете использовать atoi():
if (argc >= 2){
if (atoi(argv[1]) == 1){
function1();
function2();
function3();
}
}
program.exe 1
, то argc будет равен 2.
Поскольку int(argv[1])
не преобразует строку "1"
в int
1
. Попробуйте это вместо этого:
if (argv[1][0] == '1') {