命令行参数在 DOS 或 Linux 等命令行操作系统中的程序名称之后给出,并从操作系统传递给程序。要在程序中使用命令行参数,必须首先了解 main 函数的完整声明,main 函数实际上可以接受两个参数:一个参数是命令行参数的数量,另一个参数是所有命令行参数的完整列表。
main 的完整声明如下所示:
int main ( int argc, char *argv[] )
- int型 argc 是 ARGument Count(因此为 argc)。它是从命令行传递给程序的参数数量,包括程序的名称。
- argv数组是所有参数的列表。argv[0] 是程序的名称,如果名称不可用,则为空字符串。每个小于 argc 的元素编号都是命令行参数。可以像使用字符串一样使用每个 argv 元素,也可以将 argv 用作二维数组。argv[argc] 是一个空指针。
- 参数由空格分隔,也可以是制表符。
下面给出了C++的实例,可以将所有命令行参数打印出来。
#include <iostream>
using namespace std;
int main ( int argc, char *argv[] )
{
for (int i = 0; i < argc; i++) {
cout << "argv[" << i << ']' << ": " << argv[i] << endl;
}
return 0;
}
运行结果如下:
$ ./arg -a 123 -bcd 4\"5 ef ghj
argv[0]: ./arg
argv[1]: -a
argv[2]: 123
argv[3]: -bcd
argv[4]: 4"5
argv[5]: ef
argv[6]: ghj
《C++ 中使用 argc 和 argv 的命令行参数》有一个想法