C++ main()函数及其参数

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
-----------------------------------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值