我有一个程序要求用户输入范围 [0,2] 的整数。 我使用以下链接作为向导 。
< a href=" "https://stackoverflow.com/ questions/2075898/good-input-validation-loop-using-c" > 使用 cin - C/a > 的好输入验证环
但是,当用户按键输入时不输入数据,光标只是进入命令提示中的下一行,而我更希望它能促使用户输入一个有效号码。在这种情况下,提醒用户是有道理的,还是有理由不作为单行输入执行验证?如果是字符串,我会使用“获取线”来解决这个问题,我是否应该在此情况下使用这个代码?这是我基于上述链接的代码:
#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(),
);
}
}
system("pause");
}