在执行程序时,CLion IDE的输出有时会中断

Yah*_*din 9 clion

使用CLion时,我发现输出有时会中断.

例如,在运行代码时:

main.cpp中

#include <stdio.h>

int main() {

    int i;
    for (i = 0; i < 1000; i++) {
        printf("%d\n", i);
    }
    fflush(stdout); // Shouldn't be needed as each line ends with "\n"

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

预期产出

预期的输出显然是新线上的每个数字0-999

实际产出

在CLion中多次执行代码后,输出通常会发生变化:

  • 有时它会完美执行并显示所有数字0-999
  • 有时它会在不同的点被切断(例如0-840)
  • 有时它不输出任何东西

返回码始终为0!

截图

终端输出切断

在终端中运行代码(即不在CLion本身)

但是,在使用终端编译和运行代码时,代码会完美地输出数字0-999.

我花了很多时间在这个问题上认为这是我的代码问题和内存问题,直到我终于意识到这只是CLion的一个问题.

操作系统:Ubuntu 14.04 LTS

版本:2016.1

构建:#CL-145.258

更新

一个合适的解决方法是在调试模式下运行代码(感谢@olaf).

Yah*_*din 9

大家一致认为这是一个IDE问题.因此,我已经报告了这个bug.

一个合适的解决方法是在调试模式下执行代码(不需要断点).

一旦修复了这个错误,我会更新这个问题.

更新1

警告:除非JetBrains特别询问您,否则不应更改注册表中的信息.注册表不在主菜单中是有原因的!使用以下解决方案需要您自担风险!

JetBrains与我联系并提供了合适的解决方案:

  1. 转到"查找操作"对话框(CTRL + SHIFT + A)
  2. 搜索"注册表..."
  3. 打钩 run.processes.with.pty

应该工作正常!

更新2

这里添加了错误:https: //youtrack.jetbrains.com/issue/CPP-6254

随意投票吧!

  • 该错误被标记为已修复但我仍然拥有它. (3认同)