1. 程式人生 > >C++中main函式中引數argc和argv的使用例項

C++中main函式中引數argc和argv的使用例項

含義解釋

(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