如何将命令行参数传递给c程序
How to pass command line arguments to a c program
自从我学会编程以来,我就知道如何编写一个接受命令行参数的程序。我不明白的是这些参数是如何得到它们的值的。希望我不会把这两者混淆,但自变量和参数之间是有区别的。参数是函数被调用时给定的值,例如: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键。。。是的,它完成了!
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用指向成员的指针将成员函数作为参数传递
- 如何将参数传递给正在使用模板的类
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 如何在程序集函数中将元素数组作为参数传递时转发 ARM 寄存器的地址指针
- 参数传递和返回值如何在程序集级别的 x86 上的 C/C++ 中工作?
- Eclipse CDT:传递具有相同文件扩展名的多个程序参数
- 将文件的内容作为参数传递到C 程序中
- 在 boost::d eadline_timer 上创建包装器,无法将参数传递给处理程序函数
- 为在应用程序中作为函数参数传递的文件运行'iconv'命令C++
- 将引用参数传递给程序集函数
- 从C++调用 c 程序并传递参数
- 如何在程序集中传递参数
- 将Unicode命令行参数传递到控制台应用程序
- 如何从c++应用程序启动java应用程序,传递参数并等待java应用程序的结果
- 如何在vc++中将路径作为参数传递到第二个应用程序中
- 如何将函数作为参数传递给异步操作处理程序
- 确保Windows c++控制台应用程序的单实例和参数传递的正确方法
- 从程序参数传递的c++信号名
- 初始化程序列表作为数组的函数参数传递