main()函数及其参数
C++标准允许主函数main()有或没有参数列表。 您能在主函数main()中使用一个或更多的参数。 如下是一些惯例:
int main(int argc, char *argv[])
第一个参数argc,指明有多少个参数将被传递给主函数main(),真正的参数以字符串数组(即第2个参数argv[])的形式来传递。每一个字符串均有自己意思。在这句法上面, 记住, argc代表参数的数量, main()函数本身是在索引0为的第一参数。 所以, argc总是至少为1 。它的总数是从argv列阵的元素数目。 这意味着, argv[0]的值是至关重要的。 如果用户在控制台环境中程序名称后键入含参数的指令, 那么随后的参数将传递给argv[1] 。 例如, 如果程序名称为main,并且已经事先编译好了,这时如果用户键入:
D:\\MyPrograms\\AConsoleApp\\main 68
值68将会传递给argv[1]
当然取决于你怎么样来编写程序了,也许你的用户将可以输入如下指令:
D:\\MyPrograms\\AConsoleApp\\main 68 1250.50
因为参数argv是一些字符串,将这些字符串转换为你需要的值就是我们程序员的任务了。所以用户输入下面这样的指令:
D:\\MyPrograms\\AConsoleApp\\main 68 1250.50
并不意味着68是一个整形,而1250.50是一个double,当然C\\C++编译器为我们提供了一些转换函数,你可以用atoi()函数把字串68转换为整形。同样,你可以用atof()函数把字串1250.50转换为double类型
如果用户输入一个字符,值将用单引号,如果是字符传将用双引号。用这种技术,用户将被允许使用数字、字符及字符串作为程序的参数来运行程序。
1 为了演示在主函数main()中使用数字参数,改变上例代码如下:
#include
using namespace std;
int main(int argc, char *argv[])
{
double Operand1, Operand2, Addition;
Operand1 = atoi( argv[1] );
Operand2 = atoi( argv[2] );
Addition = Operand1 + Operand2;
cout << \"\\nFirst Number: \" << Operand1;
cout << \"\\nSecond Number: \" << Operand2 << endl;
cout << Operand1 << \" + \" << Operand2 << \" = \" << Addition << endl;
return 0;
}
保存文件,关闭VC工程,在命令行下输入CL main.cpp回车,这时生成了新的main.exe程序,再在命令行输入main 48.52 1205回车,你会看到如下运行结果:
----------------------------------------------
D:\\MyProgram2\\AConsoleApp>main 48.52 1205
First Number: 48
Second Number: 1205
48 + 1205 = 1253
D:\\MyProgram2\\AConsoleApp>]
-----------------------------------------------------------------
2 为了演示字符串参数情况,改变代码如下:
#include
using namespace std;
int main(int argc, char *argv[])
{
char Sentence[40];
strcpy(Sentence, argv[1]);
cout << \"You typed \" << Sentence<< endl;
return 0;
}
然后再CL main.cpp编译后输入指令main www.czvc.com回车后有:
---------------------------------------------
D:\\MyProgram2\\AConsoleApp>main www.czvc.com
You typed www.czvc.com
D:\\MyProgram2\\AConsoleApp>
-------------------------------------------------------------
3 最后再看一例字串和数字并用的情况,改变代码如下:
#include
using namespace std;
int main(int argc, char *argv[])
{
char FullName[40], strGender[20];
char cGender[10];
float Salary;
strcpy(FullName, argv[1]);
Salary = atof(argv[2]);
strcpy(cGender, argv[3]);
if( cGender == \"m\" || cGender == \"M\" )
strcpy(strGender, \"Male\");
else if( cGender == \"f\" || cGender == \"F\" )
strcpy(strGender, \"Female\");
else
strcpy(strGender, \"Unknown Gender\");
cout << \"Employee Information\";
cout << \"\\nFull Name: \" << FullName;
cout << \"\\nGender: \" << strGender;
cout << \"\\nSalary: \" << Salary << endl;
return 0;
}
然后再CL main.cpp编译后输入指令main \"WWW.CZVC.COM, LOOMMAN NETWORKS\" 18.52 \"M\"回车后有:
-----------------------------
D:\\MyProgram2\\AConsoleApp>main \"WWW.CZVC.COM, LOOMMAN NETWORKS\" 18.52 \"M\"
Employee Information
Full Name: WWW.CZVC.COM, LOOMMAN NETWORKS
Gender: Unknown Gender
Salary: 18.52
-----------------------------------------
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务