我正在尝试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
最佳答案
您的代码没有错。
您观察到的是在后台使用WinPTY的副作用。默认情况下,CLion使用它与Windows上的调试程序进行通信。
这是我们问题跟踪器中的相应错误:CPP-2580 User input appears twice in output window in CLion under MinGW,请随时投票。
虽然目前还没有适当的解决方法,但是您可以使用对该票证的注释中建议的解决方法来禁用PTY: