//前任。
bool ex;
cin >> ex;
try {
if (ex != 0 && ex != 1)
{
cin.clear();
throw ex;
}
}
catch (bool ex)
{
//redo process
}
您如何检查布尔值和双输入是否正确?
你想如何输入一个布尔值?“是”、“1”、“一”、“ja”、“Ja”、“sí”、“true”、“OK”、“y”、...?
好吧,您需要的是一个解析器,它解析输入并确定给定的输入字符串是否为布尔值。
你能关注:
bool ex;
while (1) {
if (cin >> ex) {
if(ex ==1 || ex== 0)
break;
} else {
cout<<"Error !"<<endl;
cin.clear();
while (cin.get() != '\n') ;
/* Edit: Use cin.ignore(numeric_limits<streamsize>::max(), '\n');
as suggested by Ben Voigt
header file - limits
*/
}