Re: [問題] main的傳入值argv的問題..

看板C_and_CPP作者 (AC)時間14年前 (2010/04/21 00:50), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《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

04/21 00:54, , 1F
怪怪的, 你貼的code就應該要能印出你想要的樣子ㄟ@_@"
04/21 00:54, 1F

04/21 01:39, , 2F
Dev 正常, index = 0 會是檔案名稱, 所以 1~3 才是你要的
04/21 01:39, 2F

04/21 13:22, , 3F
這段code應該是會完整印出吧,不會只印出第一個字元
04/21 13:22, 3F

04/21 13:25, , 4F
printf("%c\n",argv[0][0]); 只印第一個字元,這樣給就好了
04/21 13:25, 4F

04/21 13:55, , 5F
感謝各位 我試過如果 argv[1]+2 才會印第二個 還是怪怪的@@
04/21 13:55, 5F

04/22 00:06, , 6F
你直接把char *argv[]看作是char argv[][]會比較好思考^^
04/22 00:06, 6F
文章代碼(AID): #1BpTjoyy (C_and_CPP)
文章代碼(AID): #1BpTjoyy (C_and_CPP)