[問題] 命令列引數問題

作者: laughingman (笑面男)   2016-02-26 21:59:59
開發平台(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 *
照理說要印出*,但卻印出在同一資料夾下其他檔案的檔名,
讓我百思不得其解,不知道有沒有人可以替小弟解惑,
感謝。
作者: bdvstg (bdvstg)   2016-02-26 22:15:00
* 這個符號代表著所有 它是開始 也是結束 (疑~?好啦不開玩笑 *是萬用字元(wildcard character)所以*會先被展開 再丟進去可以看看stackoverflow http://goo.gl/5JV5SH 這篇
作者: LPH66 (-6.2598534e+18f)   2016-02-26 22:23:00
所以要真的丟 * 進去就要告訴命令列「我要的就是 * 字」方法就是把它用 "" 括起來
作者: bdvstg (bdvstg)   2016-02-26 22:25:00
作者: Bencrie   2016-02-27 14:16:00
或者 escape \*
作者: laughingman (笑面男)   2016-02-28 01:20:00
原來如此,感謝樓上各位解答小弟困惑。

Links booklink

Contact Us: admin [ a t ] ucptt.com