std::endl导致崩溃。

3

在开发一个简单的示例(我已经有一段时间没有编写C++了)时,我遇到了奇怪的行为。以下的hello world程序在Windows(Mingw)下崩溃:

#include <iostream>

int main () {

    for (int idx = 0; idx < 5; idx++) {
        std::cout << "Hello World" << std::endl;
    }

    return 0;
}

如果我去掉std::endl,程序就不会崩溃了。
我使用以下命令在64位系统和操作系统上使用Mingw32(g++ 4.8.1)编译和执行示例:
g++ example.cpp -o example.exe
example.exe

错误信息如下:

example.exe不再工作...

这是已知问题还是我的明显错误?

1
来自Windows的非常有意义的报告:“example.exe不再工作…” - nils
1
你使用的是哪个版本的mingw?你使用的是32位还是64位系统和编译器?看起来像是库版本冲突。 - Erbureth
@Spook 我在想,他会如何显示它 :) - Erbureth
1
例如,@Erbureth的OutputDebugString - Spook
@Spook:如果我使用try-catch,会出现另一个错误,显示未找到“__gxx_personality_v0”。也许整个构建系统的配置确实存在问题。 - nils
显示剩余18条评论
1个回答

0

<< endl 是一个本质上是函数的操作。你的输出不能被刷新,这会导致问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接