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。

C++中 int main(int argc, char **argv) 命令行传递参数的更多相关文章

  1. int main(int argc, char** argv) 以及CommandLineParser

    参考链接: 关于int main(int argc, char** argv) http://blog.csdn.net/liuhuiyi/article/details/8239303 http:/ ...

  2. 如何理解主函数main中变量(int argc,char *argv[])的含义

    每一个C语言的初学者,都会注意到主函数main()里的两个参数,但是初学者一般不会去关注这两个参数的具体作用,下面我们就来介绍这两个参数的具体作用. main()函数是控制台程序的入口,int mai ...

  3. c/c++中int main(int argc,char *argv[])的具体含义

    int main(int argc,char * argv[ ]) argv为指针的指针 argc为整数 char **argv or: char *argv[ ] or: char argv[ ][ ...

  4. opencv中 int main(int argc,char* argv[])详解

    opencv中  int main(int argc,char* argv[])详解 argc是命令行总的参数个数     argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数     ...

  5. VC++中的int main(int argc, char argv[])是什么意思

    这是C/C++的一重要函数,叫主函数.无论程序多复杂,代码中必须有这么一个函数,也只能有一个这样的函数:程序执行时就是从这个函数进入的.由于问得比较笼统,如果你想知道详细情况的话,发给你一个网友的求助 ...

  6. int main (int argc, const char * argv[0]) 中参数的含义;指针数组和数组指针

    恩,有的编译器初始化时候会产生这样的参数 argc是命令行总的参数个数,argv[]是argc个参数,其中第0个参数是程序的全名 1. 几种C++ 常见的参数种类 int main(void); in ...

  7. 关于int main( int argc, char* argv[] ) 中arg和argv参数的解析及调试

    https://blog.csdn.net/LYJ_viviani/article/details/51873961 https://stackoverflow.com/questions/30241 ...

  8. int main(int argc,char* argv[])参数详解

    argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[] ...

  9. int main(int argc,char* argv[]) 简单理解

    (1)第一个int代表整个main函数的返回值,若函数正常执行完毕,返回0,异常返回则是-1 (2)int argc代表命令行参数的总个数,既然是个数,那就是整型的,即:int; (3)char* a ...

随机推荐

  1. 报错An internal error occurred during: "reload maven project". java.lang.NullPointerException

    新建了一个maven项目,由于有问题就删除了,但是卡住了就强制关闭了. 查了一下是由于由于没有正常关机导致eclipse无法将数据正常写入配置文件导致无法启动.所以报这样一个异常. 最后是这样解决的: ...

  2. [cocos2dx] cocosdx编译工程那些事

    cocos compile -p android 上面这条命令可以将cocos2dx的工程编译出android apk,需要注意的是如果有新增的cpp文件,都需要在“CocosProject\proj ...

  3. 如何理解Nginx, WSGI, Flask之间的关系

    概览 之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑.通过查阅了些资料,总算把它们的关系理清了. 总括来说,客户端从发送一个 ...

  4. MySQL之表的约束

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...

  5. 前端基础-css(3)

    一.文本属性和字体属性(常用的) 1.文本属性 text-align:left|right|center|justify(两端对齐,只适用于英文);   /*对齐方式*/ color:色值;   /* ...

  6. Thinkphp的list_to_tree 实现无限级分类列出全部节点

    list_to_tree 使用起来十分方便,具体可查看手冊.由于我在用的时候须要同一时候列出全部节点,所以写了一个递归函数,拿出来供大家參考. public function index(){ Loa ...

  7. Java Concurrent happens-before

    happens-before relation on memory operations such as reads and writes of shared variables. The resul ...

  8. Keras网络层之常用层Core

    常用层 常用层对应于core模块,core内部定义了一系列常用的网络层,包括全连接.激活层等 Dense层 keras.layers.core.Dense(units, activation=None ...

  9. Python3+Selenium3自动化测试-(二)

    python3 元素定位和操作方法总结 # coding=utf-8 ''' #8种元素定位方法 find_element_by_id() find_element_by_name() find_el ...

  10. 003-linux安装软件的几种方法

    一.rpm包安装方式步骤 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在的 ...