还有什么“\\ N”除了打印换行吗?(what else '\\n' do exce

2019-10-17 08:52发布

注释行2“你好”被印刷九次但注释行1输出的“Hello”超过九次后。 我的问题是什么是“\ n”的这个角色?

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int tmp[10], i, n=0;

    for(i=0;i<9;i++)
    {
        tmp[i]=fork();
        if(tmp[i]>0)
            break;
        else
        {
            printf("Hello\n");  //      ---- Line 1
            printf("Hello ");   //      ---- Line 2
        }
    }
}

Answer 1:

\ n也可以清空标准输出缓冲器。 如果它不存在,有可能是您以前在它输入的数据。 法拉盛也意味着它强制的printf尽快\ n被处理的屏幕上打印。 否则,它是缓冲的输出,你永远无法预测多长时间?OS缓冲自己的输出,当它恰恰选择实际打印。



Answer 2:

你可能会缓冲的受害者冲洗不会发生。 “\ n”在字符串的末尾使输出缓冲器平齐。 如果输出缓冲区没有刷新,那么你可能会从以前的printf调用一些输出为好。 因此,它始终是更好地使用“\ n”在打印字符串的结尾,以确保我们刷新缓冲区。 你可以看一下这个问题 。



文章来源: what else '\\n' do except printing newline?
标签: c fork printf