我写了一个C程序:
#include <stdio.h>
int main() {
printf("a\n");
}
Run Code Online (Sandbox Code Playgroud)
执行它,得到这个:
a
Run Code Online (Sandbox Code Playgroud)
但是如果我不在\nprintf语句中添加,那么我会得到这个:
a%
Run Code Online (Sandbox Code Playgroud)
为什么?
更新:以下是他们的图片:

该%角色很可能是您的命令行提示符.
'\n'是一个新线字符.可能在第一种情况下,你会看到%下一行,紧接着a,如下所示:
// printf("a");
% gcc prog.c
% ./a.out
a%
^
// printf("a\n");
% gcc prog.c
% ./a.out
a
%
^
Run Code Online (Sandbox Code Playgroud)
编辑:事实证明,有些shell会%在部分输出行的末尾打印特殊字符(例如),以防止它们被提示覆盖.有关详细信息,请访问https://superuser.com/questions/645599/why-is-a-percent-sign-appearing-before-each-prompt-on-zsh-in-windows