原文发布于Hibiki33’s Blog,转载请标明出处。
命令行参数
在支持C语言的环境中,可以在程序开始执行时将命令行参数传递给程序。
调用主函数 main
时,有两个参数,第一个参数表示运行程序时参数的数目,第二个参数表示指向字符串数组的指针,其中每个字符串对应一个参数。
int main(int argc, char *argv[])
{
return 0;
}
其中 argc
和 argv
是C语言的习惯性命名。
按照C语言的规定,argv
是一个指向指针的指针,而 argv[0]
的值默认是启动该程序的程序名,因此 argc
的值至少为1。
命令行参数的调用
涉及命令行参数的代码在编译环境中是没有效果的。
将下面的代码复制到你的C语言编程环境,将下列代码复制并进行编译,生成 .exe
文件。接下来进入DOS环境运行(详见后文)。
#include <stdio.h>
int main(int argc, char **args)
{
printf("The program has %d arguments.\n", argc);
printf("The name of the program is %s.\n", args[0]);
printf("The first argument of the input is %s, and the second is %s.\n", args[1], args[2]);
return 0;
}
有如下几种常用的方法运行:
- 在
.exe
所在目录下,地址栏输入cmd
并回车,cmd
打开后会自动定位到当前目录。然后以 “文件名(空格)参数1(空格)参数2” 的格式输入并回车。例如我的文件名是test
,那么我输入test a b
。 - 用
win + R
打开运行,输入cmd
并回车,此时没有定位到刚刚生成的.exe
所在的目录,需要在文件名前加上其路径。例如此时我将输入D:\DataStructures\test a b
。当然也可以用cd
命令转到响应目录下。 - 如果你的编程环境是Dev-C++,在菜单栏中点击 “运行-参数” ,然后输入相应的参数即可。例如我输入
a b
。
自行尝试运行上述程序体会一下命令行的作用和效果。
利用命令行交互的功能还有很多,读者可以自己查阅资料进行探索。