我有一个来自C编程书的简单程序,它应该要求两个整数然后将它们加在一起并显示总和。我可以输入两个数字,但输出直到程序结束才会显示。
#include <stdlib.h>
#include <stdio.h>
/* Addition Program*/
main()
{
int integer1, integer2, sum;
printf("Enter first integer\n");
scanf("%d", &integer1);
printf("Enter second integer\n");
scanf("%d", &integer2);
sum = integer1 + integer2;
printf("Sum is %d\n", sum);
return 0;
}
输出如下:
2
6
Enter first integer
Enter second integer
Sum is 8
非常感谢任何帮助,谢谢!
答案 0 :(得分:8)
可能没有自动刷新输出。你可以在每个printf()之后添加fflush(stdout),看看是否有帮助。
您使用哪种环境来构建和运行此程序?
答案 1 :(得分:2)
除此之外,printf只会在到达换行符时自动刷新缓冲区。
如果您在Windows上运行,换行符为\r\n
而不是\n
。
或者你可以这样做:
fflush(stdout);
另一种方法是通过调用来关闭缓冲:
setbuf(stdout, NULL);
修改强>
刚刚发现这个相似(但不一样)的问题: Why does printf not flush after the call unless a newline is in the format string?