如何将命令行参数传递给c程序

时间:2013-07-15 01:16:09

标签: c++ c command-line

自从我学会编程以来,我已经知道如何编写接受命令行参数的程序。我不明白的是这些参数如何获得它们的价值。希望我没有这两个混合,但参数和参数之间存在差异。 参数是在调用函数时赋予函数的值,例如:foo(a,b,c);其中a,b和c是值。 参数是被调用时函数内部的值。

所以我的问题是一个人如何将命令行参数传递给程序?我理解如何读取参数,argc是参数的数量,argv是指向包含参数等的字符串数组的指针,但我只是不知道如何给这些参数一个值..

我正在寻找C和C ++的信息。我在这方面有点新手。

4 个答案:

答案 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”(没有引号)并按下回车键......是的,它完成了! 和