我的程序在遇到#符号后停止读取我通过终端给出的参数。
例如,当我用
执行它时./ myprogram arg1 arg2 arg3 ## arg4 arg5 arg6
我的argc是4(程序名+前三个参数),但我的程序在##
之后没有看到任何参数(当我添加引号时它会工作,但我必须没有它。)
有关如何让我的程序将其视为字符串的任何想法?
答案 0 :(得分:1)
最有可能的是,你的shell将#
字符解释为注释的开头,并在此之后忽略所有内容。您可以通过在#
之前放置\
来转义./myprogram arg1 arg2 arg3 \#\# arg4 arg5 arg6
,也可以将整个参数放在单引号中。
./myprogram arg1 arg2 arg3 '##' arg4 arg5 arg6
或
##
您的程序将以相同的方式看到这两个输入 - 参数将为{{1}}。