如何将命令行参数传递给ac程序
自从我学会编程以来,我就知道如何编写一个接受命令行参数的程序。 我不明白的是这些参数如何获得它们的价值。 希望我没有这两个混淆,但参数和参数之间存在差异。 参数是在调用函数时赋予函数的值,例如:foo(a,b,c); 其中a,b和c是值。 参数是被调用时函数内部的值。
所以我的问题是一个人如何将命令行参数传递给程序? 我理解如何读取参数, argc
是参数的数量, argv
是指向包含参数等的字符串数组的指针,但我只是不知道如何给这些参数赋值。
我正在寻找C和C ++的信息。 我在这方面有点新手。
在Windows环境中,您只需在命令行上传递它们,如下所示:
myProgram.exe arg1 arg2 arg3
argv [1]包含arg1等
主要function如下:
int main (int argc, char *argv[])
在* nix上:
$ ./my_prog arg1 arg2
在Windows命令行上:
C:\>my_prog.exe arg1 arg2
在这两种情况下, main
声明为:
int main (int argc, char *argv[])
argc
将是一个值为3的int
, argv[1] = "arg1"
, argv[2] = "arg2"
,此外, argv[0]
将具有程序名称my_prog
。
命令行参数通常用空格分隔,如果你想传递带空格的参数,比如hello world
,请使用双引号:
$ ./my_prog "hello world"
在* nix上,有一个非常好的实用程序 ,它允许您以非常直接的方式解析命令行标志和参数。 在同一页面上有一个很好的例子。
然后,您将运行您的程序并以非常标准化的方式将参数传递给它:
$ ./my_app -a -b -c argument1 argument2
你可以不用它而只是自己解析它们,但如果你的目标是让你的应用程序对其他人有用,那么绝对值得努力使它符合要求。
只需单击开始菜单并在搜索索引中键入cmd …按下输入..现在在cmd窗口中键入以下命令…“program_name arg1 arg2”(不带引号)并按下回车键…是的,它完成了! 和