我试图使它不能输入低于0的字母或数字。但如果我输入一封信,我会得到一个无限循环。
这就是我现在所拥有的
int DiskCylCur [DiskDevices];
for (int i = 1; i<=DiskDevices; i++)
{
int input = 0;
cout << "Enter the number of Cylenders for Disk " << i << " : ";
cin >> input;
DiskCylCur[i] = input;
}
为什么会这样?
答案 0 :(得分:-1)
当您输入字母而不是数字时,cout
不会读取数字,而字母会保留在输入流中。
要检测此类错误,请读取字符串,然后将字符串转换为int。
std::string s;
cin >> s;
int input;
if ( sscanf(s.c_str(), "%d", &input) == 1 )
{
// Got a number. Use it.
}
答案 1 :(得分:-1)
只需使用while循环和测试。
bool ok = false;
while(ok) {
if (input > 0) {
ok = true;
}
}