C++中 int main(int argc, char **argv) 命令行传递参数


C++中,比较常见的是不带参数的主函数int main(),如果使用命令行执行程序,主函数也可以接收预先输入的参数,形式如下。

int main(int argc,char **argv)

  • argc:命令行参数个数(Argument Count)
  • argv:命令行参数向量(Argument Vector)

例如,我们在命令行输入Project.exe string1 string2 string3时,argc=4,表示输入的参数个数是4,分别是Project.exestring1string2string3

argv是一个字符串数组,对应存储这4个字符串,即argv[0] = "Project.exe", argv[1] = "string1", argv[2] = "string2", argv[3] = "string3"。因此可以在主函数中,后续通过argc和argv获取参数信息。

int main(int argc,char **argv)也可以写成int main(int argc, char *argv[])。

示例

假设要通过命令行接收一串数字,程序输出这串数字的和。

#include <iostream>
#include <cstdlib>

// int main(int argc, char *argv[])
int main(int argc, char **argv)  
{

    int sum = 0;
    for (int i = 1; i < argc; ++i)
    {
        int num_i = atoi(argv[i]);  // 字符串转换成整数
        sum += num_i;
    }
    std::cout << sum;

    return 0;
}

编译程序,生成.exe文件,windows环境下,可以进入cmd界面,通过cd指令进入exe文件的所在目录。

比如我这里所生成的Project.exe文件路径为 E:\C++ Projects\MediaTek\03 数列求和\Project1\Debug,在cmd界面,先输入e:,然后回车,进入E盘,再输入cd E:\C++ Projects\MediaTek\03 数列求和\Project1\Debug,回车,从而进入exe文件的所在目录。

接下来输入Project1.exe 11 12 13 14,回车,结果显示为50。

posted @ 2018-07-29 22:00  东聃  阅读(...)  评论(... 编辑 收藏