15

如果我运行一个 C++ 程序

./program arg1

argv[1] 存在,但是有没有办法检查 argv[2] 是否存在?

4

4 回答 4

33

是的,看看 的值argc

if (argc > 2) {
  ... use argv[2] ...
}
于 2012-11-28T07:46:48.930 回答
5

的,argv[i]以 结尾NULLargc传递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;
}

学习听

于 2012-11-28T07:57:10.007 回答
2

的原型main说明了一切:

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

这里的第一个参数,argc携带的值Number_Of_Arguments(argv[])_Present

于 2012-11-28T07:51:46.940 回答
0

你可以换一种方式试试。测试一下argc,就可以知道有没有了argv[n]

于 2012-11-28T07:47:03.937 回答