main函数命令行参数的使用

总览

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

  • 第一个参数的类型为int型;
  • 第二个参数为字符串数组。

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

  1. 形式一:
    int main(int argc, char* argv[])//这里使用char* argv[]
    {
        return 0;
    }
  2. 形式二:
    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

  • 需要传入哪些参数?

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

  1. 第一个参数 int argc 不用管!!!!操作系统会自动根据第二个参数传入数字;

     若用户输入N个字符串,那么argc= N + 1;

   2.  第二参数为用户输入的一系列字符串,字符串之间以空格间隔,形式为:
       字符串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这种平台下进行程序的编写,调试时可以打开项目的属性窗口进行参数输入,参数之间空格相隔。

这里写图片描述

用户在cmd窗口输入方法

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

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值