【发布时间】:2018-05-19 15:57:09
【问题描述】:
我想用来自用户输入的整数填充一个大小为 6 的数组。它检查无效输入以及数字是否在 1 到 100 之间。它工作正常,除非存在不是整数的无效输入,在这种情况下,它会陷入“无效”的无限循环输入..”。我试图用“cin.clear();”来解决这个问题但这似乎没有帮助。我在这里想念什么?
for (int i = 1; i <= 6; i++) {
cout << "Please enter number " << i ;
while (true) {
cin >> numbers[i];
if (!cin.fail() && 101 > numbers[i] && 0 < numbers[i])
break;
cin.clear();
cout << "Not a valid input -- please repeat: ";
}
}
【问题讨论】: