我有以下代码。当输入jackpot
之类的东西时,它会打印出8次cout,每个字符一次。它为什么这样做?信息是结构,数字是整数。
do {
cout <<"Please input a valid number."<< endl;
cin>>information.number;
if (!cin)
{
cin.clear();
cin.ignore();
}
}
while(information.number> 12 || information.number< 1);
答案 0 :(得分: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);