CLion - 未处于调试模式时,getline 在 EOF 上崩溃

CLion - getline crashes on EOF when not in debug mode

提问人:Ron Zeitouny 提问时间:4/5/2018 最后编辑:Ron Zeitouny 更新时间:4/5/2018 访问量:357

问:

我的程序尝试逐行读取 stdin,直到它收到 ctrl+d:

int main(int argc, char ** argv) {
    std::string inputLine;

    // Read from stdin, until you get Ctrl+D
    while(std::getline(std::cin, inputLine)) {
       //Do some work...

    }

    return 0;
}

现在,一切正常,直到用户发送 ctrl+D。 当用户输入 ctrl+d 时,程序崩溃:我收到 Windows 错误,指出我的进程已崩溃,并且 CLion 向我显示以下错误消息:

进程完成,退出代码 -1073741819 (0xC0000005)

当我在调试模式下运行代码时,这不会发生!只有当我使用 CLion 的“运行”按钮运行时才会发生这种情况。

我想我还应该注意,即使我在 Windows 上,CLion 也配置为在 ctrl+D 上发送 EOF。

有什么想法吗?

C++ Windows GetLine EOF Clion

评论

0赞 NathanOliver 4/5/2018
如果没有最小的可重复示例,就不可能分辨
0赞 Ron Zeitouny 4/5/2018
我改进了我的示例,即使在这个最小的代码中,它仍然会发生!
0赞 4/5/2018
您的“最小代码”将无法编译。
0赞 Sid S 4/5/2018
Ctrl-Z 在 Windows 上是 eof。您发布的代码对我来说很好用,使用 VS2015 编译。
0赞 drescherjm 4/5/2018
您的防病毒软件会导致这种情况吗?我知道有很多关于 aVast 在启用沙盒模式时阻止 c++ 代码工作的报道。

答: 暂无答案