我写了一个C程序:
#include <stdio.h>
int main() {
printf("a\n");
}
执行它,得到这个:
a
但如果我不在printf语句中添加\n
,那么我会得到这个:
a%
为什么?
更新:以下是他们的图片:
答案 0 :(得分:5)
%
字符很可能是您的命令行提示符。
'\n'
是一个换行符。可能在第一种情况下,您会在%
之后的下一行看到a
,类似于:
// printf("a");
% gcc prog.c
% ./a.out
a%
^
// printf("a\n");
% gcc prog.c
% ./a.out
a
%
^
编辑:事实证明,有些炮弹会在部分输出线的末尾打印特殊字符(例如%
),以防止它们被提示覆盖。更多详情请见https://superuser.com/questions/645599/why-is-a-percent-sign-appearing-before-each-prompt-on-zsh-in-windows
答案 1 :(得分:4)
%
是shell打印的提示。程序终止时打印。如果没有\n
,则没有换行符分隔printf()
的输出和提示。
答案 2 :(得分:3)
这是你的shell的提示。由于没有最终换行符,程序的输出会直接进入下一个提示符。