2017-06-14 65 views
-4

当用户输入错误的编号时,有没有什么办法可以在while循环中使用?即(默认)或某物。我创建了goto,它的工作,但它是跛脚。C++ switch默认运行时while循环

default: 
      { 
       cin.clear(); 
       cin.sync(); 
       cout << "ERROR! Choose other number: "; 
       cin >> choose; 
       goto again; 
      } 
+1

显示实际的代码! – tilz0R

+0

我认为你正在寻找这个:https://stackoverflow.com/questions/10828937/how-to-make-cin-take-only-numbers – NathanOliver

+1

不需要goto。围绕交换机和继续的循环就足够了。 – StoryTeller

回答

-1

可能,我建议:

bool OK; 
do 
{ 
    cin >> choose; 
    if(OK = !cin.fail()) //if the input is OK 
    { 
     switch(choose) 
     { 
     case 1: //do something 
      break; 
     //case 2: //do something else 
     //etc. 
     default: 
      cin.clear(); 
      cin.sync(); 
      cout << "ERROR! Choose other number: "; 
      OK = false; 
      break; 
     } 
    } 
} 
while(!OK); 
+0

太棒了!它正在工作。感谢大家的帮助 –