C++输入流状态变化的一点小细节
来源:互联网 发布:微软雅黑blod mac 编辑:程序博客网 时间:2024/06/06 16:55
今天写了这么一段代码来实验输入流状态的变更:
对int类型的变量输入字符,当输入流处于错误时,
clear()函数只能复位输入流的状态,而缓冲区依旧有错误的输入,
这个时候需要调用ignore()函数来清空缓冲区,无参时默认清空一位,
如果不用ignore()函数则将导致在main函数中输入流直接读取了缓冲区之前保留的错误输入,
导致再度发生错误,因而一定要将缓冲区所有错误输入清空。
另:ignore(numeric_limits<std::streamsize>::max());清空所有缓存。
std::istream& read(std::istream& is){int i;while (!is.fail()){is >> i;}is.clear();is.ignore();return is;}void main(){int a;read(cin);if(!cin.bad()) cout << "bad"<< endl;while (cin >> a){<span style="white-space:pre"></span>}}
对int类型的变量输入字符,当输入流处于错误时,
clear()函数只能复位输入流的状态,而缓冲区依旧有错误的输入,
这个时候需要调用ignore()函数来清空缓冲区,无参时默认清空一位,
如果不用ignore()函数则将导致在main函数中输入流直接读取了缓冲区之前保留的错误输入,
导致再度发生错误,因而一定要将缓冲区所有错误输入清空。
另:ignore(numeric_limits<std::streamsize>::max());清空所有缓存。
0 0
- C++输入流状态变化的一点小细节
- C#string类的一点小细节
- 看别人文章归纳的一点C/C++小细节
- 继承的一点小细节
- CocoaPods 最近的一点小变化
- CocoaPods 最近的一点小变化
- 关于const的一点小细节
- 时间比较的一点小细节
- Linux:source 命令的一点小细节
- progressbar样式的一点小细节
- 自动装箱的一点小细节
- java基础的一点小细节
- 一点小细节
- C语言非常重要的细节(知道一点更新一点)
- 一点 C 的小题目
- 关于输入的一点小总结
- c#中的一点小细节
- matlab plot一点小细节
- elasticsearch zen发现
- 数据库学习笔记和小练习(5)视图
- 20161105提高A组总结
- html form表单提交后不刷新不跳转的实现方法------
- 怎么根据程序读到的ADC值,推算实际电压值?
- C++输入流状态变化的一点小细节
- 树莓派(raspberry pi)初观之虚拟机qemu
- 2016.11.5 NOIP提高组模拟赛 总结
- mysql学习笔记之一
- JAVA多线程实现模拟卖票
- mysql:查询排名
- 操作系统(1):发展过程
- iwebshop 首页位置
- linux下判断文件和目录是否存在[总结]