[英]Prevent letters or numbers below 0 from being entered
我正在嘗試使其不能輸入小於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;
}
為什么會這樣呢?
當您輸入字母而不是數字時, cout
不會讀取數字,並且字母停留在輸入流中。
要檢測此類錯誤,請讀取一個字符串,然后將該字符串轉換為int。
std::string s;
cin >> s;
int input;
if ( sscanf(s.c_str(), "%d", &input) == 1 )
{
// Got a number. Use it.
}
只需使用while循環和測試即可。
bool ok = false;
while(ok) {
if (input > 0) {
ok = true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.