gpt4 book ai didi

c - 为什么 C 在换行之前不打印到 shell?

转载 作者:IT王子 更新时间:2023-10-29 00:51:07 26 4
gpt4 key购买 nike

在 C 中,有时我的输出不会打印到终端,直到我打印换行符 \n。例如:

int main()
{
printf("Hello, World");
printf("\n");
return 0;
}

直到下一个 printf 才会打印 Hello World(我通过在 gdb 中设置断点知道这一点)。有人可以解释为什么会发生这种情况以及如何解决它吗?

谢谢!

最佳答案

这样做是出于性能原因:将数据传递到控制台的成本太高(就执行速度而言),无法逐个字符地进行。这就是为什么在打印换行符之前输出会被缓冲:字符被收集在一个数组中直到打印,此时整个字符串被传递到控制台。您还可以显式强制输出,如下所示:

fflush(stdout);

关于c - 为什么 C 在换行之前不打印到 shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15713987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com