804*_*142 1 c breakpoints anjuta
我在 Fedora 20 上使用 Anjuta 和 gdb 并创建了一个 C Makefile 项目。代码如下所示:
#include <stdio.h>
int main (void)
{
° printf ("1");
° printf ("2");
° printf ("3");
return (0);
}
Run Code Online (Sandbox Code Playgroud)
° 表示我在那个位置设置了一个断点。
现在,当我调试代码时,没有输出,而当前行是这些 printf 函数之一。只有当我退出 main '123' 时,终端中才会出现。
如果我将 \n 添加到第二个 printf 参数,那么当我从断点 2 移动到第三个断点时,输出会出现 '12'。
默认情况下,stdout 在写入终端时是行缓冲的,在写入任何其他类型的流时是完全缓冲的。由于您没有打印任何换行符,因此正在缓冲输出。您可以使用 更改缓冲模式setbuf(),以换行符结束每个字符串,或者fflush()在您想要打印时调用。