您的位置:首页 > 编程语言 > C语言/C++

c和C++main函数中参数的意义和用法

2015-11-24 17:21 369 查看
main函数是C++的主函数,除了程序本身外,任何函数都不可以调用main函数。main函数中可以添加参数,也可以不写。main函数默认有两个参数,main(int argc, char ** argv),其中,argc是用来表面main函数究竟调用了几个参数,因为程序本身的文件名就是一个参数,所以argc总是>=1。如果除了程序本身外,你还规定了其它的一些参数,例如在vs里面进行调试时,输入了参数”1.jpg”,则argv[1] = “1.jpg”.也就是说,你输入了几个参数,总的参数个数就是你输入的参数个数再加1。

例如如下代码:

#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
if (argc != 2)
{
cout << "Error" << endl;
return -1;
}
Mat image;
image = imread(argv[1], CV_LOAD_IMAGE_COLOR);

if (!image.data)
{
cout << "Error1" << endl;
return -1;
}
cout << "argc = " << argc << endl;
cout << "argv[0] = " << argv[0] << endl;
cout << "argv[1] = " << argv[1] << endl;
namedWindow("Display Window",CV_WINDOW_AUTOSIZE);
imshow("Display Window",image);

waitKey(0);
return 0;
}


项目的属性页,调试选项中有个命令参数选项,里面你就可以写入一些参数,例如我写入了“2.jpg”,那么程序运行的结果就是

argc = 2
argv[0] = E:\VS2010\opencv\Debug\opencv.exe
argv[1] = 2.jpg


而且,我如果写入参数 35 “2.jpg”,(需要首先将第一个if判断句注释掉,因为此时参数的总个数为3),那么程序运行结果就是

argc = 2
argv[0] = E:\VS2010\opencv\Debug\opencv.exe
argv[1] = 35


而argv[2] = 2.jpg
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言