2013-03-11 87 views
1

我有以下代碼。當輸入如jackpot之類的東西時,它將輸出8次,每個字符一次。它爲什麼這樣做?信息是一個結構,數字是一個整數。C++ while循環重複

do { 
     cout <<"Please input a valid number."<< endl; 
     cin>>information.number; 
     if (!cin) 
      { 
      cin.clear(); 
      cin.ignore(); 
      } 
    } 
while(information.number> 12 || information.number< 1); 
+2

看:http://en.cppreference.com/w/cpp/io/basic_istream/ignore – chris 2013-03-11 06:06:24

回答

1

您可以指定最大長度忽略長度和忽略delimiter:再次

do { 
     cout <<"Please input a valid number."<< endl; 
     cin>>information.number; 
     if (!cin) 
      { 
      cin.clear(); 
      cin.ignore(1024, '\n'); // ignore up to 1024 chars. until '\n' 
      } 
    } 
while(information.number> 12 || information.number< 1);