2017-06-14 106 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

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