CLion会自动从标准输入打印输入,有什么问题吗?

Eli*_*oni 3 c++ mingw cmake clion

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

例如,如果我运行此程序

#include <iostream>
#include <string>

int main(){
    string name;
    std::cin >> name;
    std::cout << name << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

并键入thomas并按Enter键我得到此输出

thomas
thomas
thomas
Run Code Online (Sandbox Code Playgroud)

相反,我应该得到

thomas
thomas
Run Code Online (Sandbox Code Playgroud)

我在Windows 10 x64上使用CLion/Mingw64

Eld*_*mov 6

您的代码没有任何问题.

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

这是我们的问题跟踪器中的相应错误:CPP-2580用户输入在MING的CLion输出窗口中出现两次,请随时提供票证.

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

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