为什么在程序退出之前我的输出不显示?

时间:2010-07-28 15:17:55

标签: c

我有一个来自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

非常感谢任何帮助,谢谢!

2 个答案:

答案 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?