为什么我的输出仅在打印后再打印?

时间:2010-01-29 07:15:49

标签: c printf

这里有趣的小虫子:

if (host != NULL) {
    printf("hi");
} else {
    printf("FAIL");
}
return 0;

根本不打印任何内容,但是:

if (host != NULL) {
    printf("hi");
} else {
    printf("FAIL");
}   
fprintf(stdout, "\n%s\n", (char *)&additionalargs);
return 0;

打印

  

     

ABC

有谁知道这是为什么?

3 个答案:

答案 0 :(得分:7)

printf输出到stdout是缓冲的。您可能需要查看fflush

答案 1 :(得分:5)

不同的是\ n字符。

当你打印字符时,它们被累积在缓冲区中,直到发送“行尾”字符才会发送到输出设备。

答案 2 :(得分:0)

尝试在fflush(stdout)条件之前使用if