input — проверка наличия argv [i] переполнения стека

Если я запустил программу на C ++

./program arg1

argv [1] существует, однако есть ли способ проверить, существует ли argv [2]?

12

Решение

Да, посмотрите на стоимость argc:

if (argc > 2) {
... use argv[2] ...
}
28

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

да, argv[i] заканчивается NULL, argc является number of arguments перешел к основной функции. Получить представление из следующего кода.

#include<stdio.h>
int main(int argc, char* argv[]){
int i=0;
while(argv[i]!=NULL){
printf("\n %s is argv %d ",argv[i],i);
i++;
}

printf("\n");
}

desktop:~$ gcc main.c  -o main
desktop:~$ ./main grijesh thisiscrazy4

./main is argv 0
grijesh is argv 1
thisiscrazy4 is argv 2

здесь argv был — "./main","grijesh","thisiscrazy4",NULL и argc = 3.

argv[0] Имя исполняемого файла (путь выполнения) можно использовать для пинтинга с ошибочными утверждениями.
argv называется вектор аргумента и argc вызываемый счетчик аргументов. Вы также можете использовать другое имя переменной.

Прочитать о полный синтаксис функции main () это также включает переменные среды.

int main (int argc, char *argv[], char *envp[])
{
return 0;
}

Учиться слышать

5

Прототип main говорит все это:

int main(int argc, char **argv);

Первый параметр здесь, argc несет в себе значение Number_Of_Arguments(argv[])_Present

1

Вы можете попробовать другой способ. Проверьте количество argcтам можно узнать наличие argv[n],

0
По вопросам рекламы [email protected]