[英]cin.fail with extra conditions C++
所以我需要從用戶那里得到輸入,它必須是一個數字,我必須使用cin.fail()
來檢查它是否是一個數字。 最重要的是,數字必須是 0、1 或 2。我是 C++ 新手,所以還沒有想出如何去做。
這是代碼的一部分。 它檢查輸入是否為數字,但我不知道如何讓它檢查數字是 1、2 還是 0,如果不是,則再次詢問,直到輸入有效。
do {
input = false;
cout << "Enter a number from the menu: ";
cin >> menu;
if (cin.fail()) {
cout << "Invalid input!" << endl;
input = true;
cin.clear();
}
cin.ignore(numeric_limits<streamsize>::max(), '\n');
} while (input);
cout << "Valid input!";
假設變量menu
是一個字符串,你可以在if語句中取字符串menu
的第一個字符,檢查該字符的十進制值是否在'0'
到'3'
的十進制數之間。
將您的 if 語句更改為:
if (menu[0] < '0' || menu[0] > '3' || menu.length() > 1)
{
// Error code
}
僅當第一個字符的十進制值小於字符'0'
的十進制值或大於字符'3'
的十進制值時,此代碼才會運行,如果用戶輸入的長度超過此代碼,則此代碼將運行輸入大於 1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.