4

我刚刚为 c++ 安装了 Eclipse,但该printf()功能有问题。我的代码应该从打印“给出数字”开始,但事实并非如此。如果我输入 4,这就是我得到的:

4

给个号码:

我是1号

我是2号

我是3号

我是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;
}
4

1 回答 1

0

有三种不同的缓冲策略:

  • 写入或读取无缓冲流的字符会尽快单独传输到文件或从文件中传输。

  • 当遇到换行符时,写入或读取行缓冲流的字符会以块的形式传输到文件或从文件中读取。

  • 写入或读取完全缓冲流的字符以任意大小的块传输到文件或从文件传输。

正如 Daniel Fischer 和 Jonathan Leffler 指出的那样,您的终端最初似乎是完全缓冲的,这意味着您必须使用fflush(stdout);将流传输到终端或使用setvbuf(stdout, 0, _IOLBF, 0);.

于 2013-03-27T18:26:02.380 回答