C程序中的命令行参数?

如何在C中读取命令行参数? 例如,在

./test --help 

要么

 ./test --build 

我如何访问“–build”或“–help”?

您的参数在argv中:

 int main(int argc, char **argv) 

如果你打印argv(argv [0],argv [1]等)的内容你就会明白。

尝试:

 int main (int argc, char **argv) { for(int i = 0;i< argc;i++) printf("%s\r\n",argv[i]); } 

您可以使用argc argvargcargv参数,并根据它们执行不同的操作:

 #include  void dohelp(void) { /* whatever; */ } void dobuild(void) { /* whatever; */ } int main(int argc, char **argv) { if (argc == 2) { if (!strcmp(argv[1], "--help")) dohelp(); if (!strcmp(argv[1], "--build")) dobuild(); } return 0; } 

argc包含shell传递给程序的参数数量,包括程序名称。 所以myapp --help获得了2的argc。

argv是自己的论点。 最后一个argv( argv[argc] )是NULL指针。


编辑:参数不需要命名为argcargv ,但是命名别的东西是非常非常糟糕的!

 int main(int foo, char **bar) /* RGAGGGGHH */ int main(int n, char **options) /* RGAGGGGHH */ 

最基本的是使用参数(int argc, char *argv[]) ,你可以直接解析它们。

一种更高级的方法是使用getopt … http://www.gnu.org/s/libc/manual/html_node/Getopt.html

有几种方法[照常]。 从argv读取命令行参数(与argc一起传递给main)。

您可以自己解析这些并在​​每次在argv中找到新选项时都有一些开关设置标志。 或者您可以使用库来解析命令行参数。 我建议使用libc getopt(google it)。