除印刷换行外还有什么’\ n’?

评论第2行后,“Hello”打印9次,但评论第1行输出“Hello”超过9次。 我的问题是’\ n’在这方面的作用是什么?

#include #include int main() { int tmp[10], i, n=0; for(i=0;i0) break; else { printf("Hello\n"); // ---- Line 1 printf("Hello "); // ---- Line 2 } } } 

\ n还会刷新标准输出缓冲区。 如果不存在,则可能先前已在其中输入数据。 刷新还意味着一旦处理完就强制printf在屏幕上打印。 否则它是缓冲输出,你永远无法预测OS缓冲输出多长时间以及何时选择实际打印。

您可能是缓冲区刷新没有发生的受害者。 字符串末尾的’\ n’使输出缓冲区刷新。 如果未刷新输出缓冲区,那么您也可能从前一个printf调用获得一些输出。 所以最好在打印字符串的末尾使用’\ n’来确保我们刷新缓冲区。 你可以看看这个问题 。