zoukankan      html  css  js  c++  java
  • 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++ ProjectsMediaTek3 数列求和Project1Debug,在cmd界面,先输入e:,然后回车,进入E盘,再输入cd E:C++ ProjectsMediaTek3 数列求和Project1Debug,回车,从而进入exe文件的所在目录。

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

  • 相关阅读:
    Oracle SQL语句大全(一)
    数据查询(3)-复杂查询(芮)
    数据查询(2)-高级查询(芮)
    数据查询(1)-简单查询(芮)
    T-SQL(5)-操作数据行(芮)
    T-SQL(4)-功能函数(芮)
    T-SQL(3)-批处理(芮)
    T-SQL(2)-逻辑控制(芮)
    T-SQL(1)-变量(芮)
    如何设计数据库(2)?(芮)
  • 原文地址:https://www.cnblogs.com/Ran-Chen/p/9387899.html
Copyright © 2011-2022 走看看