cin状态罗致进入死循环

cin状态导致进入死循环
我想测试一下,cin输入错误的状态,写了个小程序,但是进入了死循环
#include<iostream>
using namespace std;

int main()
{
  int i;
  cout << "请输入一个数字:"<< endl;
  cin >> i;
   while(!cin)
  {
cout << "输入错误!" << endl;
cout << cin << endl;
cin.clear();
cout << cin << endl;
cin >> i;
  }
  
  return 0;
}

cin状态罗致进入死循环

本人初学,希望大神不吝赐教,谢谢
------解决方案--------------------
http://blog.****.net/mougaidong/article/details/6882345
------解决方案--------------------
引用:
http://blog.****.net/mougaidong/article/details/6882345

也许就如他说的,没有略过cin缓冲吧,忽略0继续试