如何将规范字符作为argv的字符串读取

时间:2017-11-06 13:37:10

标签: terminal argv

我的程序在遇到#符号后停止读取我通过终端给出的参数。

例如,当我用

执行它时
  

./ myprogram arg1 arg2 arg3 ## arg4 arg5 arg6

我的argc是4(程序名+前三个参数),但我的程序在##之后没有看到任何参数(当我添加引号时它会工作,但我必须没有它。)

有关如何让我的程序将其视为字符串的任何想法?

1 个答案:

答案 0 :(得分:1)

最有可能的是,你的shell将#字符解释为注释的开头,并在此之后忽略所有内容。您可以通过在#之前放置\来转义./myprogram arg1 arg2 arg3 \#\# arg4 arg5 arg6 ,也可以将整个参数放在单引号中。

./myprogram arg1 arg2 arg3 '##' arg4 arg5 arg6

##

您的程序将以相同的方式看到这两个输入 - 参数将为{{1}}。