如何从字面上打印f %d
这可能是一个简单的答案。但我似乎找不到答案。
假设我想:
printf( "printf(\"%d\", x );" );
我希望输出字面上是:printf( "%d", x );
有没有办法做到这一点?如果我只是输入我上面写的代码,一个数字会被放入 %d,但我不想在其中放置任何东西。我只想要文字 %d。
那么我们为什么不在这里练习一些真正安全的编程练习呢?
printf("%s", "printf(\"%d\", x );" );
%
与另一个逃脱%
:
printf( "printf(\"%%d\", x );" );
您可以使用%%
文字百分比。
使用puts
or fputs
,这些是输出无格式文本的选择
puts( "printf(\"%d\", x );");
将它与尾随换行符(我觉得这是个好主意)或
fputs( "printf(\"%d\", x );", stdout);
如果您坚持没有换行符。
加倍%
以“逃脱”它:
printf( "printf(\"%%d\", x );" );
^--