全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1634
推到 Plurk!
推到 Facebook!

DOS 下執行接收的字串

答題得分者是:暗黑破壞神
-->
elvishsu66
一般會員


發表:3
回覆:3
積分:1
註冊:2006-11-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-30 10:26:54 IP:124.177.xxx.xxx 訂閱
Hi,  前輩們,
小弟有一個問題請教, 小弟寫了一個程式, 是接收到一個字串為文件名稱, 開啟它, 再將內容有space的地方replace掉.
之前只用 cin.get(), 來取得檔案名稱 (123.txt), 但是使用者必須輸入, 現在, 如果我只用批次檔, 或是在DOS下執行,
我要怎樣作才可以做到 C:\replace.exe 123.txt, 直接執行我的exe檔再加上檔案名稱這一個動作呢?
123.txt 是會變的...

也就是說, 之前是...
C:\ replace.exe
Please input your file name:
123.txt
Thank you...

現在要的是
C:\ replace.exe 123.txt
Thank you

我該怎樣作呢?

------------------------------------------------------
void process_file(char *filename)
{
*******執行的程式
*******
}


int main()
{
char str[256];
cin.get(str,256);// 一定要使用者輸入 ...
process_file(str);
}
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-30 10:30:43 IP:218.170.xxx.xxx 未訂閱
去找一下書
int main(int argc, char *argv[])
......

這個 argc, argv 是什麼意思。跟怎麼用它。
你就會了。

通常沒傳參數,會把它省略。有傳時就是要全部使用。
elvishsu66
一般會員


發表:3
回覆:3
積分:1
註冊:2006-11-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-30 10:54:48 IP:124.177.xxx.xxx 訂閱
Thank you very much.
You really gave me a grate hint.
Thank you....
elvishsu66
一般會員


發表:3
回覆:3
積分:1
註冊:2006-11-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-11-30 17:55:12 IP:121.208.xxx.xxx 訂閱
從Programmer Club - windblown 大大的建議, 兩者兼備
--------------------------------------------------------------------------
int main(int agrc, char* argv[])
{
char str[256];
char* pFilename
if ( argc>1 ) {
pFilename=argv[1]; // 取得參數 123.txt
}
else {
cin.get(str,256);// 使用者輸入 ...
pFilename = str;
}
process_file(pFilename);
}

<!--
系統時間:2024-11-22 19:42:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!