作者pboywc (AC)
看板C_and_CPP
標題Re: [問題] main的傳入值argv的問題..
時間Wed Apr 21 00:50:55 2010
※ 引述《OpenSkyWin (雞飛城市)》之銘言:
: 第3
: 假設我在shell下丟參數給程式來執行
: program.exe abc def xyz
: 這時在程式中
: argv[0]="program.exe"
: argv[1]="abc"
: argv[2]="def"
: argv[3]="xyz"
: 那麼我如果想印出參數裡的「字元」
: 像,"abc"的a、"def"的e、"xyz"的z 時
: 我要怎麼寫呢...一直寫不出來@@
: Thanks!!
請問這個問題要如何解?
我在別的地方有看到以下這個寫法
int main(int argc, char *argv[])
{
//argv[0]-> 就是 "c:\test.exe"
//argv[1]-> 就是 "abc"
//argv[2]-> 就是 "123"
//目前參數有 3 個, argc = 3 ,即 argv[0] ~ argv[2]
printf("%s\n",argv[0]);
printf("%s\n",argv[1]);
printf("%s\n",argv[2]);
return 0;
}
這樣只會印出
c
a
1
這樣
如果要印成
c:\test.exe
abc
123
該怎麼做
謝謝
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.138.231
推 VictorTom:怪怪的, 你貼的code就應該要能印出你想要的樣子ㄟ@_@" 04/21 00:54
→ GoodXD:Dev 正常, index = 0 會是檔案名稱, 所以 1~3 才是你要的 04/21 01:39
推 ljhgc:這段code應該是會完整印出吧,不會只印出第一個字元 04/21 13:22
→ ljhgc:printf("%c\n",argv[0][0]); 只印第一個字元,這樣給就好了 04/21 13:25
→ pboywc:感謝各位 我試過如果 argv[1]+2 才會印第二個 還是怪怪的@@ 04/21 13:55
→ ljhgc:你直接把char *argv[]看作是char argv[][]會比較好思考^^ 04/22 00:06