C++有一种能够让程序访问命令行参数的机制,就是主函数的参数与常用的有所不同。
int main(int argc,char * argv[])
argc为命令行中参数个数,包括命令名本身(也就是程序名exe)。
argv是一个指向char的指针数组,其中的指针指向命令行参数,例如,argv[0]就是指向命令行参数中的第一个字符串,默认为命令名本身(也就是程序名exe)。
下面用一个简单示例来演示这种命令行处理技术是怎么用的。
1、打开Visual Studio开发工具,新建一个C++控制台项目,添加如下代码:
#include <iostream>
int main(int argc,char * argv[])
{
for (int i=0;i<argc;i++)
{
std::cout << argv[i] << std::endl;
}
system("pause");
return 0;
}
这个代码的功能是循环打印出所有的命令行参数。
2、先用常规方式运行代码,会发现控制台只打印了第一个参数,命令名本身(也就是程序名exe),在项目文件夹内生成了“可执行文件exe”。
3、我们再用DOS命令来运行程序,同时按快捷键“Ctrl+R”,输入“cmd”,进入命令行界面。
如果只是单纯的运行程序,只需要输入程序名(包含路径)就可以了。如果要打印其它的命令行参数,需要在程序名加上其它命令行参数E:\vs2015_c++\C++_命令行处理技术\Debug\C++_命令行处理技术.exe 1 2 3 4 5 6,如下所示: