我有一個程序,要求用戶輸入範圍[0,2]的整數。我使用以下鏈接作爲指導。如何使用cin實現單行整數類型命令行輸入驗證?
Good input validation loop using cin - C++
然而,當用戶按下不輸入數據輸入光標只是去在命令提示符下一條線,而我寧願它提示用戶輸入有效的數字。在這種情況下提示用戶是否有意義,還是有理由不實施驗證作爲單行輸入開始?在字符串的情況下,我會使用getline來解決這個問題,我應該在這種情況下以某種方式使用它嗎?這裏是我的代碼,基於上面的鏈接:
#include <iostream>
int main()
{
int answeredNumber;
while(1)
{
std::cout << "Enter your answer: ";
if(std::cin >> answeredNumber && answeredNumber >= 0 && answeredNumber <= 2)
{
break;
}
else
{
std::cout << "Please enter a valid answer: " ;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
}
system("pause");
}
謝謝你,我會閱讀sstream的文檔。 – newToProgramming