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

转载 2006年06月09日 23:53:00

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


C++ main函数详解

main函数的参数   我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定mai...
  • hgl868
  • hgl868
  • 2011年12月09日 16:55
  • 6058

[C/C++基础知识] main函数的参数argc和argv

该篇文章主要是关于C++\C语言最基础的main函数的参数知识,是学习C++或C语言都必备的知识点.不知道你是否知道该知识?希望对大家有所帮助. 一.main()函数参数 通常我们在写主函数时都是vo...
  • Eastmount
  • Eastmount
  • 2014年03月05日 01:13
  • 27937

C/C++ 误区二:void main()

        很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup...
  • fengyuruhui
  • fengyuruhui
  • 2007年07月07日 21:41
  • 3891

C++学习之main函数以及带形参的main函数

     C++程序包含一个或者多个函数,但是必须有一个函数被命名为main函数。操作系统通过调用main函数来执行程序,main函数是操作系统唯一显式调用的函数。main函数在执行结束后会返回给操作...
  • guiyinzhou
  • guiyinzhou
  • 2011年04月07日 14:07
  • 3028

C++中main函数的悲哀

这个得从面向过程的C语言开始。 为什么说C语言一定要有main函数呢? C语言中有数据和函数。函数部分放在代码区,数据分为两类:局部的和全局的,它们的区别在于放在静态数据区还是堆栈中。而且全局变量...
  • thefutureisour
  • thefutureisour
  • 2012年06月04日 09:10
  • 4997

C++ main函数中参数argc和argv含义及用法

argc 是 argument count的缩写,表示传入main函数的参数个数; argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0...
  • dcrmg
  • dcrmg
  • 2016年07月22日 00:08
  • 20922

C++学习笔记 - main()函数及其参数

main()函数及其参数:int main(int argc, char *argv[] C++标准允许主函数main()有或没有参数列表。 您能在主函数main()中使用一个或更多的参数。 如下是...
  • hawkol
  • hawkol
  • 2016年10月18日 17:59
  • 714

25、VS2012中给C++的main函数传递参数

接收参数并打印参数的 main 函数
  • Guo_Xiaoxi
  • Guo_Xiaoxi
  • 2017年02月25日 10:30
  • 1127

C/C++__带参数的main函数

通过win32控制台的main函数的参数,我们可以对文件等数据进行处理 main函数可以不带参数,也可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个,...
  • u010003835
  • u010003835
  • 2015年07月27日 18:13
  • 1042

C语言中main函数的参数

我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这...
  • cnctloveyu
  • cnctloveyu
  • 2009年02月18日 14:39
  • 28744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ main()函数及其参数
举报原因:
原因补充:

(最多只允许输入30个字)