cin.clear()是将错误状态更改为有效状态
cin.sync()是清除缓冲区中的未读信息
cin.ignore()是忽略缓冲区中指定个数的字符


因此如要用两个while(cin>>a),那么第一个后要有:

cin.clear();

cin.ignore();  //我也不知道为什么不能有这个,反正事实上不可以