0

//前任。

bool ex;
cin >> ex;
try {
  if (ex != 0 && ex != 1)
  {
    cin.clear();
    throw ex;
  }
}
catch (bool ex)
{
//redo process
}

您如何检查布尔值和双输入是否正确?

4

2 回答 2

0

你想如何输入一个布尔值?“是”、“1”、“一”、“ja”、“Ja”、“sí”、“true”、“OK”、“y”、...?

好吧,您需要的是一个解析器,它解析输入并确定给定的输入字符串是否为布尔值。

于 2013-07-26T19:57:26.450 回答
0

你能关注:

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
  */
  }
于 2013-07-26T19:50:58.053 回答