簡體   English   中英

防止輸入小於0的字母或數字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM