- 1.最近在处理输入流的时候,由于输入流失败后导致了无限循环。在VS2017环境下考虑使用cin.sync()清空输入流后依旧无效。简化的大致程序如下:
int main() {
int a;
while (true) {
cin >> a;
if (cin.rdstate()) {
cout << "input bit state:" << cin.rdstate() << endl;
cout << "输入为非int 请重新输入!" << endl;
cin.clear();
cin.sync();
//cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
}
else {
cout << "input bit state:" << cin.rdstate() << endl;