【转】c中main带参数是什么玩意
int argc, char *argv[]),这两个参数用于在运行程序时,从外部给程序传递参数,其中argc中保存了参数的个数,argv中分别保存了各个参数.
例如一个程序的main()函数头部形如int main(int argc, char *argv[]),编译链接后生成的可执行文件名为a.exe,那么请注意下面的调用:
a.exe abc def
在上面的命令行中,a.exe是要运行的程序名称,后面的abc和def就是传入程序的两个参数,这两个参数就通过argc和argv传入程序,注意这些参数都是字符串。
通过上面的调用,在这个程序中,argc=3,a.exe是第一个参数,这个字符串将保存在argv[0]中,abc和def分别是第二和第三个参数,它们分别被保存在argv[1]和argv[2]中。
例1:
输入长宽,计算矩型面积
void main(int argc,char *argv[]){
float area,w,h;
if (argc < 3) {
printf("\007Usage:%s width height\n",argv[0]);
printf("for example:%s 12.3 4.5\n",argv[0]);
exit(0);
}
// 参数0 是程序名,argc参数个数
sscanf(argv[1],"%f",&w); // 从参数1取得宽
sscanf(argv[2],"%f",&h); // 从参数2取得高
area = w * h;
printf("area=%f\n",area);
exit(0);
}
命令行:
prog.exe 12.3 4.5
例2
比如咱们在cmd命令下常用的ping命令,
ping 192.168.1.1
ping其实是一个程序的名字,后面192.168.1.1是给程序传递的参数。因此如果你编的程序在运行时需要用户给一些参数 可以通过main函数来传递。
int main(int argc, char *argv[]) 中
char *argv[] 用来保存包括程序名在内的字符串(以空格分串)
argc 记录字符串的个数。
比如生成了ping.exe这个文件,
然后在cmd命令下输入 ping 192.168.1 -t
argv[0]指向ping
argv[1]指向192.168.1,
argv[2]指向-t
而argc的值为3
http://blog.renren.com/share/261016900/685323888