Clion正在自动从标准输入打印回输入,有什么修复方法吗?

2022-08-28 00:00:00 mingw cmake c++ clion
我正在尝试使用Clion编写一些基本的C++程序,但每次我使用std::cinstd::getline输入一些输入时,输入都会无缘无故地打印回控制台。

例如,如果我运行此程序

#include <iostream>
#include <string>

int main(){
    string name;
    std::cin >> name;
    std::cout << name << std::endl;
    return 0;
}

然后键入Thomas,然后按Enter键我得到此输出

thomas
thomas
thomas

什么时候我应该只得到

thomas
thomas

我在Windows 10 x64上使用的是Clion/Mingw64


解决方案

您的代码没有问题。

您观察到的是在幕后使用WinPTY的副作用。默认情况下,Clion使用它与Windows上的调试程序通信。

这是我们的问题跟踪器中的相应错误:CPP-2580 User input appears twice in output window in CLion under MinGW,请随时对票证进行投票。

虽然尚未针对该问题进行适当的修复,但您可以使用该票证的备注中建议的解决方法来禁用PTY:

通过查找操作打开注册表,键入run.processes.with.pty并禁用此PTY设置。

相关文章