[问题] 命令列引数问题

楼主: 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