【发布时间】:2010-10-07 04:39:25
【问题描述】:
我正在尝试使用以下代码块在一个小型 C++ 程序中过滤掉无效的用户输入:
int selection = -1;
while (!(selection >= 1 && selection <=4))
{
cin >> selection;
if (!(selection >= 1 && selection <=4))
{
cout << "invalid selection!" << endl;
cout << "selection: ";
}
}
当我输入任何在我想要过滤的范围之内或之外的数值时,它似乎工作正常。但是,当我输入无效值(例如大于最大可存储 int 或字符的值)时,会发生奇怪的事情。代码循环并跳过“cin”命令。
我该如何解决这个问题?
谢谢
【问题讨论】:
标签: c++ stl validation