main函数命令行参数的使用

转自:main函数命令行参数的使用

总览
一个程序的main()函数的可以包括两个参数

第一个参数的类型为int型;
第二个参数为字符串数组。
通常情况下,将第一个参数命名为argc,第二个参数为argv(当然参数名字可以换)。由于字符串数组有两种表达方式,因此,main函数存在两种书写方法:

形式一:

int main(int argc, char* argv[])//这里使用char* argv[]
{
    return 0;
}

形式二:

int main(int argc, char** argv)//这里使用char ** argv
{
    return 0;
}

使用方法

  • 参数的含义 
    int argc:表示字符串的数量 argc=1+用户输入的字符串数目,操作系统负责计算数量,程序员不用管,只需要正确使用即可,例如用户输入2个字符串,argc=1+2=3;

    char* argv[]:字符串的数组,即多个字符串,形式如下:

  • argv[0]=可执行文件名称,例如test.exe(非用户输入,操作系统根据可执行文件名称自动生成) 
    argv[1]= 字符串1 
    argv[2]=字符串2 
    argv[3]=字符串3

    需要传入哪些参数? 
    两个参数作为函数的形参,需要从某个神秘的人传入参数,负责这件事的就是操作系统;那么作为使用者需要输入哪些参数呢?

    第一个参数 int argc 不用管!!!!操作系统会自动根据第二个参数传入数字; 
    若用户输入N个字符串,那么argc= N + 1;

    第二参数为用户输入的一系列字符串,字符串之间以空格间隔,形式为: 
    字符串1 字符串2 字符串3 
    注意:操作系统会自动加入一条字符串(程序名称)到字符串数组中,因此,最终的字符串数数组长度为N+1。在代码编码使用字符串内容时,需要注意字符串的索引号
     

    注意: 最终操作系统存储的字符串数组为, 
    argv[0]=可执行文件名称,例如test.exe 
    argv[1]= 字符串1 
    argv[2]=字符串2 
    argv[3]=字符串3 
    如果要使用用户输入的第一个字符串 应该是argv[1],而非argv[0]
    
    

    代码编写时怎么使用
    代码编码人员只要弄懂两个参数的含义,在使用时牢牢把握参数的类型。第一个参数为整型,第二个参数为字符串数组。若参数类型不满足程序最终的类型,就要进行类型转换,主要表现在字符串和数字之间的转换,例如将字符串 argv[1]=”21321”转换为整型变量,可以使用 int temp=atoi(argv[1]);
     

    //一个依赖命令行参数的的加减计算器控制台程序
    int main(int argc,char* argtest[])
    {
        cout << "总共有 " << argc << " 个参数" << endl;
        for (int i = 0; i < argc; ++i)
        {
            cout << argtest[i] << endl;
        }
    
        system("pause");
    
        if (argc != 4)
        {
            printf("输入参数有误");
            return 0;
        }
        if ((**(argv + 1)) == '-')
        {
            switch (*(*(argv + 1) + 1))//等效于*(argv[1] + 1)
            {
            case 'a':
                printf("%d\n", atoi(argv[2]) + atoi(argv[3]));
                break;
            case 's':
                printf("%d\n", atoi(argv[2]) - atoi(argv[3]));
                break;
            case 'm':
                printf("%d\n", atoi(argv[2]) * atoi(argv[3]));
                break;
            case 'd':
                printf("%d\n", atoi(argv[2]) / atoi(argv[3]));
                break;
            default:
                printf("无此命令,请重新运行\n");
                break;
            }
        }
        return 0;
    }

    编程模式下输入方法

    如果正在visual studio这种平台下进行程序的编写,调试时可以打开项目的属性窗口进行参数输入,参数之间空格相隔: 

  • 在VS中:调试--IO_file属性---调试----命令参数中修改即可

  • 用户在cmd窗口输入方法

    打开cmd窗口后,将可执行文件拖入窗口,根据程序要求的符串数量输入字符串,并以空格分开各个字符串,输入结束后回车即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值