Netbeans - C - 为什么输入在打印命令之前运行?
问题描述:
我在NetBeans中的代码如下:Netbeans - C - 为什么输入在打印命令之前运行?
int main(int argc, char** argv) {
int a = 2;
int b;
printf("b = ");
scanf("%d", &b);
printf("\n%d",a+b);
return (EXIT_SUCCESS);
}
问题是,当我运行它,它等待的第一件事就是用户输入,它不显示“B =”。只要我输入一些东西,它就会显示一切。
这是一个问题,因为用户必须看到文本才能知道他需要输入什么(单词或数字)。 我该如何解决这个问题?
注意:我正在使用MinGW(和MSYS for make)。
答
printf
被缓冲在stdout
...因此,只有在缓冲区中存在行结束符,缓冲区被填充到其最大容量或缓冲区被明确刷新之后,才会看到输出使用fflush
。