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

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

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

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

-----------------------------------------  

原文链接: https://www.cnblogs.com/jipeng/archive/2012/09/18/2690094.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    c++ main函数及其参数

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/63116

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午10:46
下一篇 2023年2月9日 上午10:46

相关推荐