在Eclipse Indigo CDT中运行代码时输出错误

时间:2014-05-30 06:51:57

标签: c eclipse-cdt

我正在使用Eclipse Indigo CDT并运行简单的代码:

#include <stdio.h>
void main()
{
    int num;
    printf("enter no\n");
    scanf("%d",&num);
    printf("no is %d\n",num);

}

输入:

55
enter no
no is 55

但是当我运行此代码时,它不会打印enter no。而不是它等待输入数字。按下某个数字后,它将打印enter no。可能是什么原因?

1 个答案:

答案 0 :(得分:0)

这将取决于标准输出的冲洗方案。

传统上,当连接到终端时,stdout是行缓冲的,当它没有连接到终端时,页面缓冲。

显然,当您在eclipse中运行程序时,标准输出是页面缓冲的。

你可以通过刷新标准输出来解决这个问题:

#include <stdio.h>
void main()
{
    int num;
    printf("enter no\n");
    fflush(stdout);
    scanf("%d",&num);
    printf("no is %d\n",num);

}

最好在希望信息的收件人响应时刷新文件句柄。这样,无论缓冲文件句柄如何,您都可以确保收件人获取您编写的所有内容。

相关问题