c语言主函数int main(int argc; char *argv[])中参数的作用

梦里伊人 posted @ 2008年9月01日 19:07 in c语言笔记 , 5329 阅读

    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改为那个文件名即可*/
    ......
}


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter