c语言主函数int main(int argc; char *argv[])中参数的作用
梦里伊人
posted @ 2008年9月01日 19:07
in c语言笔记
, 5323 阅读
c语言主函数int main(int argc; char *argv[])中参数的作用
在以前的c语言学习中,主函数一般定义为
void main()
{}
{}
没有参数。但是,随着学习的深入和课题中实际问题的需要(例如:在课题中,经常需要测试不同的点云文件,如果不给main()函数加参数,而是每次都依靠查找到并修改主函数中的点云文件名来达到目的,势必是很麻烦的。),我们将主函数定义为
int main(int argc, char *argv[])
{}
{}
的形式,添加了参数argc和argv。这两个参数的作用是:当执行make命令编译完程序生成可执行文件后(假设生成的可执行文件名为main),在执行该可执行文件时,argc表示输入的命令行中的字符串的个数,argv[i]表示第i个字符串,例如:如果在命令行中输入
./main
若输出argc,则其输出值为1;如果在命令行中输入
./main fish.asc
若输出argc,则其输出值为2。
样例:
int main(int argc, char *argv[])
{
FILE *file=NULL;
if (argc==1)
{
if((file=fopen("venus.asc","r"))==NULL) {
printf("error in open file venus.asc\n");
return 1;
}
} /*如果argc==1,即在命令行中输入“./main”,输入的文件为venus.asc*/
else{
if((file=fopen(argv[1],"r"))==NULL) {
printf("error in open file %s!\n", argv[1]);
return 1;
} /*如果在命令中输入“./main xxx.asc”,想对哪个文件进行操作就将xxx.asc改为那个文件名即可*/
......
}
{
FILE *file=NULL;
if (argc==1)
{
if((file=fopen("venus.asc","r"))==NULL) {
printf("error in open file venus.asc\n");
return 1;
}
} /*如果argc==1,即在命令行中输入“./main”,输入的文件为venus.asc*/
else{
if((file=fopen(argv[1],"r"))==NULL) {
printf("error in open file %s!\n", argv[1]);
return 1;
} /*如果在命令中输入“./main xxx.asc”,想对哪个文件进行操作就将xxx.asc改为那个文件名即可*/
......
}