看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
bdvstg: 可以看看stackoverflow http://goo.gl/5JV5SH 這篇 02/26 22:23
LPH66: 所以要真的丟 * 進去就要告訴命令列「我要的就是 * 字」 02/26 22:23
LPH66: 方法就是把它用 "" 括起來 02/26 22:24
bdvstg: 還有這篇 http://goo.gl/PqEHbH 02/26 22:25
Bencrie: 或者 escape \* 02/27 14:16
laughingman: 原來如此,感謝樓上各位解答小弟困惑。 02/28 01:20