C++中main函式中引數argc和argv的使用例項
阿新 • • 發佈:2019-01-01
含義解釋
(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