作者laughingman (笑面男)
看板C_and_CPP
標題[問題] 命令列引數問題
時間Fri Feb 26 21:59:59 2016
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC, VM VirtualBox, Ubuntu14.04
我想要印出命令列輸入的第一個引數,例如:
輸入./a.out abc
要印出abc
我寫的程式碼如下:
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("%s\n", *++argv);
return 0;
}
結果看起來很順利,但我只要輸入./a.out *
照理說要印出*,但卻印出在同一資料夾下其他檔案的檔名,
讓我百思不得其解,不知道有沒有人可以替小弟解惑,
感謝。
--
如果這個世界有神,
祂必定不賞善罰惡,也沒有任何道德觀,
祂只保證有生必有死,曾經經歷出生的生命,必以死亡做終結。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.254.11
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1456495205.A.002.html
→ bdvstg: * 這個符號代表著所有 它是開始 也是結束 (疑~? 02/26 22:15
→ bdvstg: 好啦不開玩笑 *是萬用字元(wildcard character) 02/26 22:17
→ bdvstg: 所以*會先被展開 再丟進去 02/26 22:21
→ LPH66: 所以要真的丟 * 進去就要告訴命令列「我要的就是 * 字」 02/26 22:23
→ LPH66: 方法就是把它用 "" 括起來 02/26 22:24
推 Bencrie: 或者 escape \* 02/27 14:16
→ laughingman: 原來如此,感謝樓上各位解答小弟困惑。 02/28 01:20