关于c++ while循环的 小问题
我是用了 如下的一个whlie 循环
while(i!=4)
{
......
cin>>i;
}
我如果输入的是 一个整形的数字 循环正常
可是 如果 我输入的时候 输入了一个字符串 那么 我的while 循环将变成一个 跳过cin 输入 这个语句的 无限死循环 这是为什么啊 求解决办法...
[解决办法]
while(i != 4)
{
//......
cin>>i;
if(!cin) break;
}
while(i != 4)
{
//......
cin>>i;
if(!cin) cin.clear();
}
while(i != 4)
{
//......
cin>>i;
if(!cin) cin.clear();
string garbage;
cin >> garbage;
}
while(i != 4)
{
//......
cin>>i;
if(!cin) cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
while(i != 4)
{
//......
cin>>i;
if(!cin) cin.clear();
cin.get();
}