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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Murdock_C/article/details/50015901

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

猜你喜欢

转载自blog.csdn.net/Murdock_C/article/details/50015901