1. 程式人生 > >c和C++main函式中引數的意義和用法

c和C++main函式中引數的意義和用法

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