cout不会产生输出
问题描述:
所以我在一个对象的方法中,但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
也没有效果。
答
您应该使用std::cout
(C++流)或C风格的流。混合它们可能会产生未定义的行为。
例如,他们可能有单独的“缓冲”通道。
+0
只留下printf让我所有的代码都可以工作。但我认为他们的目的是一起工作?所以我现在就接受它。 – Wildcat313 2013-03-23 18:18:17
答
代码片段在我的系统上运行良好,您的问题可能来自您的代码的其他部分,这里没有列出。 在方法开始处尝试fflush(stdout)
并查看它是否有效。
+0
不幸的是它没有效果:/ – Wildcat313 2013-03-23 18:22:02
这段代码没有错。请尝试拿出一个SSCCE(http://sscce.org/)。 – NPE 2013-03-23 15:57:26
可能'std :: cout'已被重定向到控制台输出以外的另一个输出源。我无法真正想到任何其他解释。 – 2013-03-23 15:57:28
您正在使用哪个IDE?因为我认为它与此有关... – Saqlain 2013-03-23 16:34:56