tem*_*boy 6 c++ loops infinite-loop
当我输入正确的值(整数)时,它是好的.但是当我输入一个角色时,我会得到一个无限循环.我查看了这段代码的每一面,但是找不到它的问题.为什么会这样?我在Windows上使用g ++ 4.7.
#include <iostream>
#include <limits>
int main()
{
int n;
while (!(std::cin >> n))
{
std::cout << "Please try again.\n";
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cin.clear();
}
}
Run Code Online (Sandbox Code Playgroud)
输入:x
输出:

这是因为您的恢复操作顺序错误.首先清除错误然后清除缓冲区.
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |