这可能是一个简单的答案。但我似乎无法找到答案。
假设我想:
printf( "printf(\"%d\", x );" );
我希望输出字面上是:printf( "%d", x );
有办法吗?如果我只是输入我上面写的代码,一个数字会被放入%d,但我不希望放在那里。我只想要文字%d。
答案 0 :(得分:5)
那么为什么我们不在这里进行一些真正安全的编程实践?
printf("%s", "printf(\"%d\", x );" );
答案 1 :(得分:3)
使用其他%
:
%
printf( "printf(\"%%d\", x );" );
答案 2 :(得分:3)
您可以将%%
用于文字百分比。
答案 3 :(得分:3)
使用puts
或fputs
,这些是输出未格式化文字的选择
puts( "printf(\"%d\", x );");
将它与尾随换行符(我发现一个好主意)或
一起使用fputs( "printf(\"%d\", x );", stdout);
如果你坚持不换行。
答案 4 :(得分:1)
加倍%
以“逃避”它:
printf( "printf(\"%%d\", x );" );
^--