gpt4 book ai didi

c - 为什么单步执行代码时 printf 输出没有立即出现?

转载 作者:行者123 更新时间:2023-11-30 16:40:07 25 4
gpt4 key购买 nike

我在 Fedora 20 上使用 Anjuta 和 gdb 并创建了一个 C Makefile 项目。代码如下所示:

#include <stdio.h>

int main (void)
{
° printf ("1");
° printf ("2");
° printf ("3");

return (0);
}

° 表示我在该位置设置了断点。

现在,当我调试代码时,当当前行是这些 printf 函数之一时没有输出。仅当我退出 main 时,终端中才会出现“123”。

如果我将\n 添加到第二个 printf 参数,那么当我从断点 2 移动到第三个断点时,输出将显示为“12”。

最佳答案

默认情况下,stdout 在写入终端时是行缓冲的,在写入任何其他类型的流时是完全缓冲的。由于您没有打印任何换行符,因此输出正在缓冲。您可以使用 setbuf() 更改缓冲模式,以换行符结束每个字符串,或者在需要打印时调用 fflush()

关于c - 为什么单步执行代码时 printf 输出没有立即出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46793501/

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