C++ 中 cin缓冲的清除
来源:互联网 发布:sql注入攻击测试工具 编辑:程序博客网 时间:2024/06/05 01:59
cin是istream的一个对象,而istream继承自basic_istream,所以cin拥有basic_istream的所有成员。因为cin是一个输入流,一些问题只能在运行台的时候才能够出现,比如当要求给一个整型复制的时候,输入的有可能是其他类型或者溢出了,这样在运行台的时候就会导致程序退出,或者造成其他方面的影响,比如如果输入的过多了,那除了赋给变量的 那些输入之外还有剩余的,这些剩余的输入将残留在输入缓存中,就会导致在下面需要输入的时候不再接受输入,而直接从缓存中获得,这就要求我们有这样的判断,判断是否输入正确,如果输入不正确就要进行相应的处理。
首先判断cin流是否正常,可以通过if(cin),来判断是不是类型正确,输入合法,cin.fail(),判断是否失败,如果失败,当前操作无影响,接下来的输入则不能进行,设置failbit为1,cin.bad()判断流是否破坏,如果流已经破话,那么任何输入也无效了。cin.good(),判断是否正常,如果正常,接下来的操作还能继续。
如果确定cin不正常,那就得把缓存中的数据清空,还得把各个标志位清除,清除标志位的函数为cin.clear(),清除缓存可以使用flushall(),将所有缓存清除也可以把指定的流缓存清除,清除指定缓存流的方法是fflush(stdin);
- C++ 中 cin缓冲的清除
- C/C++中cin,cin.getline,getline的用法
- C++:cin、cin.getline()、getline()的用法
- C++:cin\cin.getline()\getline()的用法
- C++中cin,cin.get()和cin.getline()的区别
- C++中cin,cin.get()和cin.getline()的区别
- C++中cin,cin.get,cin.getline()的区别
- C++ 中 cin cin.get() cin.getline()的用法
- c++中cin,cin.get()和cin.getline()的比较
- C++_Primer中关于cin.clear()的例题
- cin 清除缓冲区
- C的全缓冲、行缓冲和无缓冲
- cin中函数的作用
- C++中cin的使用
- cin中函数的作用
- eclipse C/C+ CDT中scanf、cin、 printf、cout不能debug输入输出的问题
- C++中cin.get和cin.getline的区别
- C++中cin和cin.getline函数连用的问题
- 加速Win XP启动的一个小诀窍
- SMS脚本节选三:读取LAZY属性
- SMS脚本节选二:如何读取SMS对象
- SMS脚本节选一:连接到SMS Provider
- spring整合jbpm
- C++ 中 cin缓冲的清除
- ASP连接各种数据库的方法
- 排错事件ID 1168和事件ID 1003 (AD Error)
- MySQL报错:Found option without preceding group in config file
- gas的一些资料
- 如何对Windows 2000中出现的“Stop 0x0000007B”错误信息进行故障诊断
- 如何解决网络连接问题
- httpRuntime 问题
- phpMyAdmin连接多服务器设置