我有这个代码:
int main(int argc, char * argv[])
{
int i;
printf("%d%s",argc,argv[1]);
return 0;
}
如果我运行这段代码a.out a\=b=
。我在用C-shell
其输出为“a=b=
“有什么方法可以将其输出更改为”a\=b=
".
更新已编辑的问题:
将命令行参数括在引号中:
$ a.out "a\=b="
引号阻止 shell 以任何方式解释命令行参数,因此仅将此字符串传递给您的程序。我用csh
/bash
..两者都适用。
或者,您可以“逃避”\
与另一个并跳过双引号:
$ a.out a\\=b=
原问题的先前答案:
是的,使用两个\
:
char a[]="a\\=b=";
outputs:
a\=b=
解释:
\
是一个转义字符,用于指示特殊字符序列,因此例如\t
表示一个选项卡。如果你想实际打印\t
,你需要“逃避”这个\
和另外一个\
。请参阅此示例和输出:
printf("\t-->Hi\n"); /* print regular tab via \t */
printf("\\t-->Hi\n"); /* want to print "\t", not tab ..so we use two \\ */
结果是:
-->Hi
\t-->Hi
This is not独特的printf()
函数,也不是真正的 C,语言可能使用反斜杠来指示字符串中的“转义序列”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)