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