2013-03-23 194 views
1

所以我在一个对象的方法中,但cout语句完全没有输出。cout不会产生输出

#include <iostream> 
#include <stdio.h> 

Object::Method() 
{ 
    printf("why is the next line not printing? This one prints fine\n"); 

    std::cout << "This line should print second, but doesnt" << std::endl; 

    printf("but this line prints fine like the first!\n"); 
} 

输出为:

为什么下一行不打印?这一个打印罚款

但这行打印好像第一!

我似乎无法弄清楚为什么它不会打印。 std::flush也没有效果。

+5

这段代码没有错。请尝试拿出一个SSCCE(http://sscce.org/)。 – NPE 2013-03-23 15:57:26

+4

可能'std :: cout'已被重定向到控制台输出以外的另一个输出源。我无法真正想到任何其他解释。 – 2013-03-23 15:57:28

+0

您正在使用哪个IDE?因为我认为它与此有关... – Saqlain 2013-03-23 16:34:56

回答

1

您应该使用std::cout(C++流)或C风格的流。混合它们可能会产生未定义的行为。

例如,他们可能有单独的“缓冲”通道。

+0

只留下printf让我所有的代码都可以工作。但我认为他们的目的是一起工作?所以我现在就接受它。 – Wildcat313 2013-03-23 18:18:17

0

代码片段在我的系统上运行良好,您的问题可能来自您的代码的其他部分,这里没有列出。 在方法开始处尝试fflush(stdout)并查看它是否有效。

+0

不幸的是它没有效果:/ – Wildcat313 2013-03-23 18:22:02