前言:我们一般使用的main函数不加参数,当加了参数会怎样呢?
int main(int argc,char**argv)
{
....
return 0;
}
参数解析:
int argc:
英文名为arguments count(参数计数)
char** argv:
英文名为arguments value/vector(参数值)
argv[0] 指向程序运行时的全路径名
argv[i] 指向程序在DOS命令中执行程序名后的第i个字符串
argv[argc]数组越界.
例一:
#include <iostream>//输入输出流类库
using namespace std;
int main(int argc, char** argv) {
//main函数参数测试
cout<<"此程序一共有"<<argc<<"个参数"<<endl;
for(int i=0;i<argc;i++) {
if(i==0){
cout<<"此程序全路径名是:"<<argv[i]<<endl;
}
else{
cout<<"第"<<i<<"个参数是"<<argv[i]<<endl;
}
}
system("pause");
return 0;
}
例二:
#include <iostream>//输入输出流类库
#include <string>
using namespace std;
int main(int argc, char** argv) {
//用main函数求和,字符变数字 ,#include <string> ;变字符串to_string();变数字stoi();
cout<<"一共对"<<argc-1<<"个数求和"<<endl;
int sum=0;
for(int i=1;i<argc;i++) {
//解决 'stoi()' was not declared in this scope.DEVC++中会出现该现象
//Under Project->Project Options->Compiler->Code generation->Language standard choose C++11.
sum=sum+ stoi(argv[i]);
if(i==argc-1)
cout<<stoi(argv[i]);
else
cout<<stoi(argv[i])<<"+"; }
cout<<"="<<sum<<endl;
system("pause");
return 0;}
运行方法(仅限VS2010)
1.将改代码在IDE环境中运行
会有下图:
2.复制此运行结果中的全路径名到“开始”“运行”或者快捷键win+R,将地址粘贴到这里,然后输入空格键+要输入的参数以例一为例:
例二的运行结果如下: