printf语句没有在netbean中的scanf语句之前执行

时间:2014-06-21 18:17:17

标签: c netbeans printf scanf

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,N;
    for(i=0;i<5;i++)
    {
        printf("Enter The Number \n");
        scanf("%d", &N);
        printf("HELLO %d \n",N);
    }
    return 0;
}

当我在NetBeans中执行上面的代码时,输​​出没有逐行执行所有输出一起执行,即一次循环结束时...问题是printf和scanf无法正常工作

1 个答案:

答案 0 :(得分:3)

您对问题的描述实际上非常好:

许多C运行时库可以检测stdout是否连接到交互设备(控制台窗口/终端)。
根据它,选择默认缓冲模式。

在终端/控制台窗口中执行程序,然后为交互式设备获得标准缓冲。

或者,拨打

setvbuf(stdout, 0, _IOLBUF, BUFSIZ);

在该流上的任何其他操作之前,将stdout流设置为默认的行缓冲操作。