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窗口后,将可执行文件拖入窗口,根据程序要求的符串数量输入字符串,并以空格分开各个字符串,输入结束后回车即可。

猜你喜欢

转载自blog.csdn.net/u010260855/article/details/81411158