我正在用C编写一个程序,我想在Windows 10桌面上工作,但是在使用MinGW时遇到了一个奇怪的问题。MinGW编译错误
我已经写该方案是如下所示:
#include <stdio.h>
int main(){
//set up variables
int a, b, c, d;
//prompt user for integers
printf("Please enter four different integers:\n");
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
scanf("%d", &d);
//return sum
int sum = a+b+c+d;
printf("Sum is: %d", sum);
return 0;
}
当我编译此,输出如下所示:(其中,1,2,3和4是将输入的数字)
1
2
3
4
Please enter four different integers:
Sum is: 10
这显然不应该发生,因为这是无序的。要尝试解决问题,我编译使用GCC上我的笔记本电脑上运行拱相同的代码和输出是这样的:(其中1,2,3和4是输入的号码)
Please enter four different integers:
1
2
3
4
Sum is: 10
这是输出应该是的样子。我在Eclipse和Windows计算机上使用Eclipse Mars作为IDE。我也在我的其他笔记本电脑上尝试过,它可以启动Windows 10和Ubuntu,并且在MinGW和GCC之间也有相同的结果。
如果有人有任何想法,为什么MinGW会采取这种行动,我将不胜感激!谢谢!
[C中的Flushing缓冲区]的可能重复(http://stackoverflow.com/questions/12450066/flushing-buffers-in-c) –
您需要使用fflush(stdout)刷新缓冲区。请参阅:http://stackoverflow.com/questions/12450066/flushing-buffers-in-c –
我相信这是关于您的IDE使用的特定命令行,可能是导致输入/输出事件的时间稍有不同(即通过IDE的命令行) –