的输出
printf("%%%%%%%%");
是
%%%%
我打印了%
8次,为什么输出只有4 %
?
答案 0 :(得分:13)
因为%
是格式说明符转义序列(如%d
中所示,会打印int
)。
要让程序打印实际符号,请编写%%
。同样适用于\
。 (虽然根本不同,你仍需要两个打印一个)
答案 1 :(得分:3)
"%"
是一个特殊字符,用于指定格式说明符,用于打印一个需要两个"%"
的序列的"%%"
字段。
格式字符串中使用"%"
来指定占位符,该占位符将被传递给格式化其输出的函数的相应参数替换,如printf()
/ fprintf()
/ sprintf()
。
那么如何打印文字"%"
?
"%"
转发它。例如,如果您希望打印整数百分比值,则需要指定"%d"
和文字"%"
作为格式说明符,这样您就可以这样做
printf("%d%%\n", value):
阅读this以了解详情。
答案 2 :(得分:1)
"%%"
printf中的是一个转义'%'的符号。请参阅此stackoverflow答案:How to escape the % sign in C's printf?