如何检查用户的输入是否有效以及我正在寻找的数字?
How can I check if a user's input is both valid and also a number I'm looking for?
如何创建一个条件语句来防止进入失败状态,并在数据无效或数据不是 1、2、3 或 4 时要求用户提供新数据?
int choice;
while ( !choice || choice != 1 || 2 || 3 || 4){
cout << "Entry Invalid. Enter again: ";
cin >> choice
}
例如,如果用户输入"f",则失败状态将被处理,程序将请求新数据。当他们输入 5 时,程序会说"不是有效数字",并要求新数据。
对于stoi
,您需要C++11
int choice;
string inp;
cin >> inp;
while(inp != "1" && inp != "2" && inp !="3" && inp !="4"){
cout << "Wrong input , type again" << endl;
//system("PAUSE");
cin >> inp;
}
choice = stoi(inp);
cout << choice;
这个确切的问题在第一年给我带来了太多麻烦。这应该可以满足您的需求,也许可以尝试实现最大失败尝试次数。
int choice = 0;
while (true) {
cout << "Please enter a number between 1 and 4" << endl;
cin >> choice;
if (cin.fail()) {
cout << "Invalid input" << endl;
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
}
else if (choice < 1 || choice > 4) {
cout << "Not a valid number" << endl;
}
else {
break;
}
}
cout << "You chose " << choice << endl;
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- QT在错误的班级中寻找空位
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 正在寻找C++不可变的hashset/hashmap
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何检查用户的输入是否有效以及我正在寻找的数字?
- C++寻找数字的力量和绝对值
- 在一个数字圆桌中寻找最长的递增子序列
- 寻找最准确的双数字排序
- 寻找最接近的数字