main函数的参数:处理命令行选项
2015-09-27 10:49
555 查看
函数都有参数, main函数也不例外。
一般我们使用的main 函数只有空的形参表:
int main()
{
return 0;
}
实际上main函数也是可以处理传进来的参数, 通过命令行选项的方式可以将参数传给main 函数
此时main 函数是如下定义的:
int main(int argc , char * argv[] )
{
return 0;
}
agrc 表示传递给main 的参数个数, agrv 是一个C风格字符串数组,保存各命令行选项,argv 的第一个字符串一般是程序的名字
eg1.
main 函数位于prog.exe 的可执行文件中,通过如下命令行方式调用main:
prog.exe -d -o ofile data0
此时argc =5,
argv[o0] ="prog.exe";
argv[1] = "-d";
argv[2] ="-o";
argv[3] ="ofile";
argv[4]="data0";
eg2:
main 函数接受两个参数,输出他们的和
#include<iostream>
#include<vector>
#include<string>
#include<cstdlib>
using namespace std;
int main(int argc, char* argv[])
{
if(argc <3)
{
cout<<"parameter error ,run the program again"<<endl;
return 0;
}
int a1 = atoi(argv[1]);
int b1 = atoi(argv[2]);
cout<<"the sum of "<<a1<<" and "<<b1<<" is "<<a1+b1<<endl;
return 0;
}
命令行中调用:
prog.exe 5 6
the sum of 5 and 6 is 11
一般我们使用的main 函数只有空的形参表:
int main()
{
return 0;
}
实际上main函数也是可以处理传进来的参数, 通过命令行选项的方式可以将参数传给main 函数
此时main 函数是如下定义的:
int main(int argc , char * argv[] )
{
return 0;
}
agrc 表示传递给main 的参数个数, agrv 是一个C风格字符串数组,保存各命令行选项,argv 的第一个字符串一般是程序的名字
eg1.
main 函数位于prog.exe 的可执行文件中,通过如下命令行方式调用main:
prog.exe -d -o ofile data0
此时argc =5,
argv[o0] ="prog.exe";
argv[1] = "-d";
argv[2] ="-o";
argv[3] ="ofile";
argv[4]="data0";
eg2:
main 函数接受两个参数,输出他们的和
#include<iostream>
#include<vector>
#include<string>
#include<cstdlib>
using namespace std;
int main(int argc, char* argv[])
{
if(argc <3)
{
cout<<"parameter error ,run the program again"<<endl;
return 0;
}
int a1 = atoi(argv[1]);
int b1 = atoi(argv[2]);
cout<<"the sum of "<<a1<<" and "<<b1<<" is "<<a1+b1<<endl;
return 0;
}
命令行中调用:
prog.exe 5 6
the sum of 5 and 6 is 11
相关文章推荐
- 2015 ACM/ICPC Asia Regional Shanghai Online 1008
- Handling Complexity in the Halo 2 AI
- Contains Duplicate III
- Training ------- Getting Started
- mybaits标签
- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
- HDU 5476 Explore Track of Point(几何)——2015 ACM/ICPC Asia Regional Shanghai Online
- 强大的仿苹果启动器 Cairodock
- HDU 5478 Can you find it(快速幂)——2015 ACM/ICPC Asia Regional Shanghai Online
- 2015 ACM/ICPC Asia Regional Shanghai Online
- 2015 ACMICPC Asia Regional Shanghai Online
- 循环引用之【#import】【@class】和循环【retain】之【assign】
- HDU 5477.A Sweet Journey【2015 ACM/ICPC Asia Regional Shanghai Online】【9月26】
- HDU 5475.An easy problem【思路】【2015 ACM/ICPC Asia Regional Shanghai Online】【9月26】
- LeetCode(11) Container With Most Water
- LeetCode(11) Container With Most Water
- signal(SIGCLD,SIG_IGN) http://blog.csdn.net/cffishappy/article/details/7005115
- HDU 5476 Explore Track of Point 几何题 —— 2015 ACM/ICPC Asia Regional Shanghai Online
- HDU 5477 A Sweet Journey(本场的最水题,过程处理好是关键)——2015 ACM/ICPC Asia Regional Shanghai Online
- DeepMind背后的人工智能:深度学习原理初探