C++清除输入缓冲区的方法
什么时候需要清除输入缓冲区,一个常见的情况就是在循环中使用cin进行数据的输入,但是用户输入的数据类型和想要保存该数据的目标类型不匹配之后,就会发生错误,循环后面的cin都不会起作用。
具体的做法如下:
1.查询读取缓冲区内容的状态
利用cin.rdstate()
可查询,一般正常读入数据其返回值为0
2.清空读取错误状态位
利用cin.clear()
清除相关读取错误标识
3.清空缓冲区
利用cin.ignore(numeric_limits<streamsize>::max(),'\n')
清空缓冲区,至此程序就能够正确的再次进行读取操作。