int n;
std::cin >> n;
std::string s = "";
std::getline(cin, s);
我注意到,如果我使用 cin
,我的程序会在下次到达 getline(cin, rangeInput)
行时挂起。
由于 getline()
使用了 cin
,如果我以前使用过 cin
,这就是导致程序挂起的原因吗?使用cin
后想得到一行怎么办?
最佳答案
您需要清除输入流 - 尝试在您的 cin 之后添加以下内容:
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
this 的公认答案问题很好地解释了为什么/何时需要这样做。
关于c++ - 使用 `getline(cin, s);` 后使用 `cin >> n;`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37237577/