6.7

6.7 读取数字的循环

int n;
cin >> n;
当用户输入一个非整数时:
1.n的值保持不变
2.不匹配的输入将会留在输入队列中
3.cin对象中的一个错误标记被设置
4.对cin方法的调用将会返回false(如果被转换位bool类型)
使用cin.clear方法重置错误输入标记, 输入错误和EOF都将导致cin返回false, 第17章将会讨论区分两种情况
当出现错误输入时, 处理顺序为:
1.重置cin以接受新的输入
2.删除错误输入
3.提示用户再次输入
for (int i = 0; i < Max; i++)
{
cout << "round#" << i + 1 << ":";
while (!(cin >> golf[i]))
{
cin.clear(); // 清除错误输入
while (cin.get() != '\n')
{
continue; // 清除错误输入
}
cout << "Please enter a number:"; // 提示用户再次输入
}
}