CLion会自动打印标准输入的输入,有没有解决这个问题的方法?

问题描述:

我正在尝试CLion编写一些基本的C++程序,但每次使用std::cin或馈入某些输入时,输入将无缘无故地打印回控制台。CLion会自动打印标准输入的输入,有没有解决这个问题的方法?

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

#include <iostream> 
#include <string> 

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

,并键入托马斯,然后按回车我得到这个输出

thomas 
thomas 
thomas 

的时候,而不是我应该得到公正

thomas 
thomas 

我在Windows上使用CLion/Mingw64 10 x64

+0

您输入'thomas'并按回车。这意味着至少会显示一个。你看到一个或两个以上(总共三个)? – NathanOliver

+0

对不起,编辑了这个问题,我的错,基本上我看到了我写的托马斯,那个被cout打印的托马斯,但我无法理解第三个来自哪里 –

+0

好的。感谢澄清。 – NathanOliver

你的代码没有问题。

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

下面是我们的问题跟踪器中的相应错误:CPP-2580 User input appears twice in output window in CLion under MinGW,请随时注册票。通过查找操作,类型run.processes.with.pty

打开注册表,并禁用此PTY设置:

虽然没有对这一问题没有适当的修复还没有,你可以使用在意见提出的解决方法,那票禁用PTY。