2013-03-11 88 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);