Открытие функции, которая делает что-то через аргументы команды

Предположим, я хотел открыть программу с помощью команды (используя argc и argv). Вы попадаете в название вашей программы, открываете программу. Это дает вам .exe. Затем, когда ваш program.exe запущен, добавьте к нему еще один аргумент, такой как (program.exe open), который должен открыть что-то в вашей программе.

if (argc >= 5){
if (int(argv[1]) == 1){
function1();
function2();
function3();

}

}

В основном, в этом случае, если пользователь вводит program.exe 1 (в данном случае 1 — отверстие), он должен выполнять следующие функции. Почему это неправильно по логике? (так как ничего не отображается)

0

Решение

Что вам нужно, это:

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();

}

}
2

Другие решения

Ваше преобразование argv [1] в int не работает. Вы могли бы использовать atoi ():

if (argc >= 2){
if (atoi(argv[1]) == 1){
function1();
function2();
function3();
}
}
1

Так как int(argv[1]) не конвертирует строка "1" к int 1, Попробуйте это вместо этого:

if (argv[1][0] == '1') {
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector