[問題] 命令列引數問題

看板C_and_CPP作者 (笑面男)時間9年前 (2016/02/26 22:00), 編輯推噓1(108)
留言9則, 4人參與, 最新討論串1/1
開發平台(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

02/26 22:15, , 1F
* 這個符號代表著所有 它是開始 也是結束 (疑~?
02/26 22:15, 1F

02/26 22:17, , 2F
好啦不開玩笑 *是萬用字元(wildcard character)
02/26 22:17, 2F

02/26 22:21, , 3F
所以*會先被展開 再丟進去
02/26 22:21, 3F

02/26 22:23, , 4F
可以看看stackoverflow http://goo.gl/5JV5SH 這篇
02/26 22:23, 4F

02/26 22:23, , 5F
所以要真的丟 * 進去就要告訴命令列「我要的就是 * 字」
02/26 22:23, 5F

02/26 22:24, , 6F
方法就是把它用 "" 括起來
02/26 22:24, 6F

02/26 22:25, , 7F
02/26 22:25, 7F

02/27 14:16, , 8F
或者 escape \*
02/27 14:16, 8F

02/28 01:20, , 9F
原來如此,感謝樓上各位解答小弟困惑。
02/28 01:20, 9F
文章代碼(AID): #1Mq5fb02 (C_and_CPP)