单个百分号的输出应该是什么?
#include <stdio.h>
void main()
{
printf("%");
}
Run Code Online (Sandbox Code Playgroud)
“未知格式代码”与“未知转义序列”不同。
你正在做的是未定义的行为。
\nC 标准第 7.21.6.1p9 节有关格式说明符fprintf(以及扩展printf) 的规定:
\n\n如果转换规范无效,则行为未定义。如果任何参数不是相应转换规范的正确类型,则行为未定义。
\n
-Wall另外,如果您这样做,gcc 将生成警告:
warning: spurious trailing \xe2\x80\x98%\xe2\x80\x99 in format [-Wformat=]\nRun Code Online (Sandbox Code Playgroud)\n打印%字符的正确方法是使用格式说明符%%。
printf("%%");\nRun Code Online (Sandbox Code Playgroud)\n