查看我的代码
char t[]= "{\n abcdeffgjejgjergnjkengkknkn \n";
printf("%s",t);
char t1[]= "{ abcdeffgjejgjergnjkengkknkn \n aaffdefa";
printf("%s",t1);
实际输出:
{
{ abcdeffgjejgjergnjkengkknkn
预期输出:
{
abcdeffgjejgjergnjkengkknkn
{ abcdeffgjejgjergnjkengkknkn
aaffdefa
有人可以帮我为什么在\ n(LF)之后不显示字符串吗?
编译器-arm-none-eabi
库头-Newlib
IDE:MCUExpresso
答案 0 :(得分:0)
默认情况下stdout
(其中printf
写入)是行缓冲。这意味着输出缓冲区已满或打印换行符时,都会刷新(实际写入)。
这就是为什么不打印输出的第二部分的原因,因为它不足以填充缓冲区,并且您没有换行符来刷新缓冲区。
您可以通过调用fflush
来明确刷新自己:
printf(...);
fflush(stdout);