【发布时间】:2013-03-05 11:20:29
【问题描述】:
我刚刚为 c++ 安装了 Eclipse,但 printf() 函数有问题。
我的代码应该从打印“给出数字”开始,但事实并非如此。如果我输入 4,这就是我得到的:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n=0,i;
printf("Give the number:\n");
scanf("%d", &n);
for(i=1;i<=n;i++)
printf("I am number %d\n",i);
return EXIT_SUCCESS;
}
【问题讨论】:
-
似乎 Eclipse 使用的“终端”不是行缓冲的。尝试在第一个
printf之后添加fflush(stdout);。 -
或者使用
setvbuf(stdout, 0, _IOLBF, 0);使其行缓冲(在第一次使用printf()之前)。 -
感谢@DanielFischer,成功了。
-
我复制了您在 cmets 中发布的答案以使其成为答案,因为我有时会浏览未回答的问题以查看是否可以提供帮助,而实际上“未回答”的问题令人困惑已经有了答案。希望你不要介意。