简单的c ++程序中没有控制台输出

时间:2014-12-06 17:07:14

标签: c++ console-output cstdio

我注意到我的一些程序在c ++中有一种奇怪的行为,当我试图弄清楚它是什么时,我发现,我的控制台输出有问题。我使用了具有相同行为的iostream和cstdio函数。当我在控制台上打印时它根本不显示。这是我用来观察这种奇怪行为的代码。 这段代码输出所有内容(即使它不应该是IMO):

#include <cstdio>
using namespace std;
int main(void) {
    int a = 0;
    scanf("%d", &a);
    a++;
    printf("result is %d", a);
}

但是这个(我认为是正确的)不显示任何内容,只显示运行完成的消息

#include <cstdio>
using namespace std;
int main(void) {
    int a = 0;
    scanf("%d", &a);
    a++;
    printf("result is %d \n", a);
}

我也在“\ n”之前删除了空格,但没有区别。但是,当我在程序的末尾放置更多相同的printf函数和“\ n”时,一切都正确显示(当然多次)。 Iostream的行为方式类似 - 使用endl不会导致任何内容出现在控制台上。我究竟做错了什么?至于导致故障的原始代码,我注意到在我的输出上没有出现但是在我的学校,相同的代码输出一切正确。我在NetBeans 8.0.2下工作。在此先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

所有输出数据在打印到控制台之前都会被缓冲。您可以使用fflush\n刷新输出流并打印所有数据。