CLion 会自动从标准输入打印回输入,是否有任何解决方法

CLion is automatically printing back input from standard input, is there any fix for this?

本文关键字:是否 任何 方法 解决 输入 打印 标准输入 CLion      更新时间:2023-10-16

我正在尝试使用 CLion 编写一些基本的C++程序,但每次我使用 std::cinstd::getline输入一些输入时,输入都会无缘无故地打印回控制台。

例如,如果我运行这个程序

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

键入托马斯并按回车键我得到此输出

thomas
thomas
thomas

相反,我应该得到

thomas
thomas

我在 Windows 10 x64 上使用 CLion/Mingw64

你的代码没有错。

您观察到的是引擎盖下使用 WinPTY 的副作用。默认情况下,CLion 使用它与 Windows 上的调试程序进行通信。

这是我们问题跟踪器中的相应错误:CPP-2580 用户输入在 MinGW 下的 CLion 的输出窗口中出现两次,请随时对票证投赞成票。

虽然目前还没有针对该问题的正确修复方法,但您可以使用该票证注释中建议的解决方法来禁用 PTY:

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