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

Rit*_*ose 1 c printf

这里有趣的小虫子:

if (host != NULL) {
    printf("hi");
} else {
    printf("FAIL");
}
return 0;
Run Code Online (Sandbox Code Playgroud)

什么都不打印,但是:

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

版画

ABC

有人知道为什么吗?

Dam*_*ver 7

printf输出到stdout是缓冲的.你可能想看看fflush


pav*_*ium 5

不同的是\n字符.

当你打印字符时,它们被累积在一个缓冲区中,该缓冲区在发送"行尾"字符之前不会被发送到输出设备.

  • 它不一定是行尾.否则,就无法在一条线路上输出和接收输入. (3认同)