這篇博文介紹使用命令列引數的程式設計方法,載體是用於檔案複製的程式。這也是我用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代表具體字串型別的引數,這是我們...