我正在尝试CLion编写一些基本的C ++程序,但每次使用std::cin
或std::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
答案 0 :(得分:6)
您的代码没有任何问题。
您观察到的是在引擎盖下使用WinPTY的副作用。默认情况下,CLion使用它与Windows上的调试程序进行通信。
以下是我们的问题跟踪器中的相应错误:CPP-2580 User input appears twice in output window in CLion under MinGW,请随时提供票证。
虽然目前还没有针对此问题的正确解决方法,但您可以使用针对该故障单的评论中建议的解决方法来禁用PTY:
通过“查找操作”打开注册表,键入
run.processes.with.pty
并禁用此pty设置。