在命令列中加引數的檔案複製程式

2021-07-03 04:48:21 字數 1741 閱讀 5541

這篇博文介紹使用命令列引數的程式設計方法,載體是用於檔案複製的程式。這也是我用markdown編輯器寫的第一篇博文。markdown在寫《逆襲大學》時用過,寫博文是第一次。

下面的程式,可以完成由a.txt到b.txt的複製。

#include 

#include

using

namespace

std;

int main( )

下面介紹一種在命令列世界中廣泛使用的加引數的做法,這是一直想為**們見空就要介紹的內容。

我們的目標是:

執行:d:\cb\cpy>cpy source.c temp.c

結果:複製source.c,產生新檔案temp.c

做法

建專案 cpy(你也可以建立其他的專案名,最後要生成對應的.exe可執行檔案)

程式用中帶引數的main函式:int main(int argc, char *argv);

其中:

如執行

cpy source.c temp.c

引數argc和argv分別如下圖:

這樣,可以編出如下的程式:

#include 

#include

#include

using

namespace

std;

int main(int argc, char *argv)

ifstream infile(argv[1],ios::in);

ofstream outfile(argv[2], ios::out);

while(infile.get(ch))

outfile.put(ch);

infile.close( );

outfile.close();

}

在編譯、連線之後,找到產生的.exe檔案,就可以用命令列的形式,完成檔案的複製了。

提乙個問題,如果用

cpy a.txt b.txt …. x.txt

形式,要將將多個檔案的內容合併到x.txt中,該如何去做?

發現這裡要合併的檔案數目不確定,這是解決問題中最關鍵的問題。

實際上,只要輸入了命令列,檔案數目是確定的。

命令列一共給了argc個引數,原始檔一共有argc-2個,分別是argv[1]到argv[argc-2],目標檔案是argv[argc-1],構造乙個迴圈就可以完成這專案任務。

得到的程式是:

#include 

#include

#include

using

namespace

std;

int main(int argc, char *argv)

ofstream outfile(argv[argc-1], ios::out);

ifstream infile;

int i;

for(i=1; i<=argc-2; ++i)

outfile.close();

return

0;}

在命令列中加引數的檔案複製程式

這篇博文介紹使用命令列引數的程式設計方法,載體是用於檔案複製的程式。這也是我用markdown編輯器寫的第一篇博文。markdown在寫 逆襲大學 時用過,寫博文是第一次。下面的程式,可以完成由a.txt到b.txt的複製。include include using namespace std in...

通過輸入命令列引數來控制程式

今天突然想到類似adb ffmpeg這樣的程式是怎麼實現的,通過命令列輸入不同的引數就可以執行不同的命令。研究了一下,其實實現的邏輯很簡單,以c 控制台程式為例,main函式是這樣的 class program 其中string args便是命令列引數了,簡單驗證一下,新建乙個命令列程式,寫入這樣一...

linux程式的命令列引數

程式執行的時候需要命令列引數,linux中更是這樣,隨便在shell輸入 bin xx help後列舉出來的引數讓你頭暈眼花,可是這些引數是怎麼進入程式的呢,我們知道程式執行的時候一般從main開始,而mian有兩個引數,乙個是 argc代表引數的個數,乙個是argv代表具體字串型別的引數,這是我們...