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。

  • 相关阅读:
    CAN Timing Sample Point
    宋体汉字字号和点阵大小对应关系
    有趣的心理测试——借船过河
    有源蜂鸣器与无源蜂鸣器的区别(转)
    VAG DMA protocol
    STM32 USB CAN 学习笔记
    STM32 CANBus RAM Layout
    LPC43XX JTAG Scan Chain
    Multiplexing SDIO Devices Using MAX II or CoolRunner-II CPLD
    LPC43xx SGPIO DMA and Interrupts
  • 原文地址:https://www.cnblogs.com/Ran-Chen/p/9387899.html
Copyright © 2011-2022 走看看