C++中main函数中参数argc和argv的使用实例

来源:互联网 发布:人工智能男主角 编辑:程序博客网 时间:2024/05/16 08:12

含义解释

(1).int argc:即为arguments count(参数数)

运行程序传送给main函数命令行参数的总数,包括可执行程序名。当argc=1时表示只有一个程序名称,此时存储在argv[0]中.
(2).char **argv:即为arguments value/vector(参数值)
字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个参数,空格分隔参数,长度为argc。数组下标从0开始,
argv[0] 指向程序运行时的全路径名
argv[1] 指向程序在DOS命令中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串
argv[argc] 为NULL.
确切的说需要我们输入的main函数的参数个数应该是:argc-1;

应用实例

实例1:新建工程键代码:

#include <iostream>       using namespace std;        void main(int argc,char *argv[])    {        for(int i=0;i<argc;i++)        {            cout<<"argument["<<i<<"] is: "<<argv[i]<<endl;        }        system("pause");    }    


当没有参数传入时,第一个变量argv[0]依然存在,保存的是函数exe文件的存放地址。

argv是指向指针的指针,“char *argv[]“也可以替换为 “char **argv“,两者是等价的。
给main函数传递参数有两种方法,第一种是在编译环境中设置,以vs2013为例,项目—>属性—>配置属性—>调试—>命令参数,在命令参数中输入,每个参数之间用空格隔开。



第二种是经常用的方式,通过命令提示符传入。首先打开命令窗口,这里po2个简便方法:

(1)在exe文件所在目录下按shift键同时右击选择打开命令窗口。(2)打开命令窗口后,把exe文件直接拖入命令窗口。

之后输入传入参数,以空格分隔,之后回车,显示如下:



实例2:opencv显示图片

#include <iostream>    #include <core/core.hpp>    #include <highgui/highgui.hpp>    using namespace std;using namespace cv;void main(int argc, char **argv){Mat image = imread(argv[1]);imshow("image", image);waitKey();system("pause");}


参考:

http://blog.csdn.net/eastmount/article/details/20413773
http://blog.csdn.net/dcrmg/article/details/51987413

原创粉丝点击