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

How to pass command line arguments to a c program

本文关键字:程序 参数传递 命令行      更新时间:2023-10-16

自从我学会编程以来,我就知道如何编写一个接受命令行参数的程序。我不明白的是这些参数是如何得到它们的值的。希望我不会把这两者混淆,但自变量和参数之间是有区别的。参数是函数被调用时给定的值,例如:foo(a,b,c);其中a、b和c是值。参数是被调用时函数内部的值。

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

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

在Windows环境中,您只需在命令行上传递它们,如下所示:

myProgram.exe arg1 arg2 arg3

argv[1]包含arg1等

主要功能如下:

int main (int argc, char *argv[])

On*nix:

$ ./my_prog arg1 arg2

在Windows命令行上:

C:>my_prog.exe arg1 arg2

在这两种情况下,给定main被声明为:

int main (int argc, char *argv[])

argc将是值为3、argv[1] = "arg1"argv[2] = "arg2"int,此外,argv[0]将具有程序名称my_prog

命令行参数通常用空格分隔,如果您希望传递带有空格的参数,如hello world,请使用双引号:

$ ./my_prog "hello world"

在*nix上,有一个非常好的实用程序,可以让您以非常简单的方式解析命令行标志和参数。在同一页上有一个很好的例子。

然后,你将运行你的程序,并以一种非常标准化的方式将参数传递给它:

$ ./my_app -a -b -c argument1 argument2

你可以不用它,只需自己解析它们,但如果你的目标是让你的应用程序对其他人有用,那么让它符合要求肯定是值得的。

只需点击开始菜单并在搜索索引中键入cmd。。。按enter。。现在在cmd窗口中键入以下命令。。。"program_name arg1 arg2"(不带引号),然后按enter键。。。是的,它完成了!