日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Main函数中的argc和argv应用举例

發布時間:2024/4/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Main函数中的argc和argv应用举例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


盡管之前寫過一篇關于argc,argv方面的文章(http://blog.csdn.net/carson2005/article/details/5766192)但依然有朋友搞不太清楚。所以,這里,我舉兩個簡單的例子來詳細說明,并告訴你一步一步的操作步驟。

1:打開指定路徑下的一個文本文件,讀取其內容,并將其寫入到指定路徑下的另一個文件當中。其中,采用argv來傳遞輸入文件路徑和輸出文件路徑。

參考代碼如下:

#include?"stdafx.h"

#include?"iostream"

#include?"fstream"

using?namespace?std;

int?_tmain(int?argc,?char*?argv[])

{

if?(argc?!=?3)//輸入參數必須為三個,第一個為test?第二個為輸入文件的路徑,第三個為輸出文件的路徑

{

cout<<"argument?error!"<<endl;

cout<<"example:?test?c:/test.txt?d:/testOut.txt"<<endl;

system("pause");

exit(-1);

}

for?(int?i=0;?i<3;?i++)

{

cout<<argv[i]<<endl;

}

ifstream?fileIn;?

fileIn.open(argv[1],?ios::in);//根據用戶設定的參數,打開輸入文件

if?(fileIn.fail())//如果文件打開失敗,直接退出

{

cout<<"fileIn?open?error:?"<<endl;

system("pause");

exit(-1);

}

ofstream?fileOut;

fileOut.open(argv[2],?ios::out);//根據用戶設定的參數,打開(創建)輸出文件

if?(!fileOut)

{

cout<<"fileOut?open?error..."<<endl;

system("pause");

exit(-1);

}

char?str[500];

while(!fileIn.eof())

{

memset(str,?'\0',?500*sizeof(char));

fileIn.getline(str,?500);

fileOut<<str<<endl;

cout<<str<<endl;

}

fileIn.close();

fileOut<<"I?have?learn?the?usage?of?argc?and?argv?in?main?function!?Thanks?to?VitoLee!"<<endl;

fileOut.close();

system("pause");

return?0;

}

筆者在E:\VCprograms\路徑下面,創建了一個名為test的控制臺工程,將上述代碼進行編譯,在工程所在的文件件下,生成了一個名為test.txt的可執行文件。需要注意的是,因為該main函數利用了main函數中的argc,argv,所以,不能直接鼠標雙擊來啟動。而必須采用命令行的方式進行啟動。具體步驟為:

(1)電腦屏幕左下角,開始---->運行--->在出現的對話框中輸入“cmd”,如下圖所示:

?

(2)回車,出現了一個類似于dos的界面,如下所示:

?

(3)由于我們生成的test.ext位于E:\VCprograms\test\Debug,故而,輸入:“cd?E:\VCprograms\test\Debug,回車,出現如下的界面:

?

(4)輸入“e”,回車(需要特別提醒的是,e后面有一個冒號!)出現如下界面:

?

(5)輸入test,后輸入文件的絕對路徑和輸出文件的絕對路徑,并以空格進行區分。例如,筆者輸入的是:“test?c:/test.txt?d:/result.txt”。(注意:Argcargument?count的簡寫,也就是參數的個數,很顯然,這里的argc=3,argv顯然是一個指針數組,對于筆者的輸入而言,argv[0]="test",argv[1]="c:/test.txt",argv[2]="d:/result.txt"。)輸入完三個參數之后,回車,如下圖所示:

?

?

這里,我在程序里面,分別輸出了argv[0],argv[1],argv[2],之后,程序按照筆者輸入的參數“c:/test.txt”,打開位于c盤下面的test.txt文件,將其內容“It's?my?first?example?for?argc?and?argv?in?main?function!”讀取出來(當然,你的文件里面,可能并不是這句話。。。),并根據筆者輸入的參數“d:/result.txt”,在d盤下面創建一個名為result.txt的文件,并將輸入文件中讀取的內容寫入到result.txt輸出文件中。就這樣,搞定!

?

2:結合opencv,用argv來傳遞參數,從而打開一個圖片文件。

參考代碼如下所示:

#include?"stdafx.h"

#include?"cv.h"

#include?"highgui.h"

#include?"iostream"

using?namespace?std;

int?main(int?argc,?char*?argv[])

{

if?(argc?!=?2)

{

cout<<"argument?error..."<<endl;

system("pause");

exit(-1);

}

IplImage?*img?=?cvLoadImage(argv[1]);

cvNamedWindow("img");

cvShowImage("img",?img);

cvWaitKey(0);

system("pause");

return?0;

}

跟上個例子一樣,還是在E:\VCprograms下面創建一個名為test的工程,編譯以上代碼,在E:\VCprograms\test\Debug下面,生成了一個名為test.exe的可執行文件。下面,讓我們從命令行進行啟動:

(1)屏幕左下角,開始--->運行,輸入"cmd",回車,結果如下:

(2)輸入“cd?E:\VCprograms\test\Debug,回車,結果如下:

(3)輸入“e:”,回車,結果如下:

(4)輸入"test",并輸入一個空格,然后,鼠標拖動一個圖片文件到cmd.exe上(例如,鼠標拖動c盤下面的test.jpg文件到cmd.exe),結果如下:這也就意味著,用鼠標拖動之后,windows可以自動將該文件的絕對路徑添加上去。

(5)回車,如果不出意外,程序將會創建一個名為“img”的窗口,并在其中顯示你拖動的圖片的內容。

Main函數中的argc,argv就是這么簡單。

總結

以上是生活随笔為你收集整理的Main函数中的argc和argv应用举例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。