C程序与NetBeans的内部控制台

C程序与NetBeans的内部控制台,c,netbeans,C,Netbeans,我有以下资料来源: #include <stdio.h> int main(void) { int c; printf("Enter a number: "); scanf("%d", &c); printf("You entered %d", c); } #包括 内部主(空) { INTC; printf(“输入一个数字:”); scanf(“%d”、&c); printf(“您输入了%d”,c); } 当我在NetBeans 8.0

我有以下资料来源:

#include <stdio.h>

int main(void)
{
    int c;

    printf("Enter a number: ");
    scanf("%d", &c);
    printf("You entered %d", c);
}
#包括
内部主(空)
{
INTC;
printf(“输入一个数字:”);
scanf(“%d”、&c);
printf(“您输入了%d”,c);
}
当我在NetBeans 8.0(MinGW/GCC)上使用“内部控制台”运行它时,第一个
printf
不会执行。只有当我输入一个数字并按回车键时,它才会执行。如果我改变 使用“外部控制台”打开控制台,然后命令提示符打开,所有 干得好。但是,在Linux下,使用NetBeans和“内部控制台””都可以正常工作。
有什么问题吗?为什么会有这种差异?

可能是
fflush
?也许内部控制台正在缓冲,我只能在此假设。首先你说“它没有被执行”,然后你回嘴说“它只在你输入一个数字时被执行……”。您似乎将printf调用的执行与查看其输出的视觉效果联系在一起——直观的,但不是实际的工作方式。如果在printf的末尾添加一个
\n
,您甚至可以在NetBeans控制台中看到输出。回复:@DanFarrell的fflush声明,我也这么认为,但是scanf也应该强制刷新,所以我认为不是这样。scanf()与刷新有各种各样的问题。如果是刷新问题,则scanf可能会完全跳过,而使用printf()语句作为输入,这在刷新问题时很常见。请在调试中运行,然后重试。那么它显示了什么吗?@ollo,在调试模式下,NetBeans切换到外部控制台“所以我无法进行测试。