【C++ Primer】【学习笔记】【第八章】标准IO库之:条件状态
2015-01-14 01:12
411 查看
一、IO标准库的条件状态
习题8.3&8.4:流读取操作
操作 | 含义 |
stream::iostate | 条件状态对应的类型名称。 |
stream::badbit | stream::iostate类型的值,用于指出被破坏的流。 |
stream::failbit | stream::iostate类型的值,用于指出失败的IO操作。 |
stream::eofbit | stream::iostate类型的值,用于指出流已经到达EOF。 |
s.eof() | 如果设置了流s的eofbit值,则返回true。 |
s.fail() | 如果设置了流s的failbit值,则返回true。 |
s.bad() | 如果设置了流s的badbit值,则返回true。 |
s.good() | 如果流s处于有效状态(即:eofbit、failbit、badbit均未被设置),则返回true。 |
s.clear() | 将流s中的所有状态都重新设置为有效状态。 |
s.clear(flag) | 将流s中的指定状态都重新设置为有效状态。flag的类型为stream::iostate。 |
s.setstate(flag) | 给流s添加指定条件。flag的类型是stream::iostate。 |
s.rdstate() | 返回流s的当前条件。返回值的类型是stream::iostate。 |
#include <iostream> #include <stdexcept> using namespace std; istream& read_stream(istream& in) { int ival; while (in >> ival, !in.eof()) { if (in.bad()) { throw runtime_error("IO stream corrupted!"); } if (in.fail()) { cout << "Read fail, try again." << endl; in.clear(); in.ignore(2, ' '); continue; } // ival is ok, process it cout << ival << " "; } cout << endl; in.clear(); return in; } int main() { double dval; read_stream(cin); cout << "read_stream() finish." << endl; cin >> dval; cout << dval << endl; return 0; }
[chapter8]$ ./a.out 1 2 3 4 5 aaa bbb ccc 6 7 8 9 0 1 2 3 4 5 Read fail, try again. Read fail, try again. Read fail, try again. Read fail, try again. Read fail, try again. Read fail, try again. 6 7 8 9 0 read_stream() finish. 1.02 1.02
相关文章推荐
- 【C++ Primer】【学习笔记】【第八章】标准IO库之:面向对象的标准库
- 【C++ Primer】【学习笔记】【第八章】标准IO库之:文件的输入和输出
- 【C++ Primer】【学习笔记】【第八章】标准IO库之:输出缓冲区的管理
- 【C++ Primer】【学习笔记】【第八章】标准IO库之:字符串流
- 重温《C++ Primer》笔记二 标准IO库的条件状态
- c++ primer(第五版)学习笔记及习题答案代码版(第八章)IO库
- C++ Primer 学习笔记_25_标准I/O库 --面向对象的标准库、条件状态、输出缓冲区的管理
- 【C++ Primer 学习笔记】chapter8 标准IO库
- C++Primer学习笔记第八章(8/18)标准IO库
- c++primer学习笔记 ( 第八章 标准IO库)
- C++ Primer学习之(8)——标准IO库
- 【C++ Primer学习笔记】第3章:标准库类型
- C++ Primer学习笔记- 第三章:标准库类型之二
- 【C++ Primer】【学习笔记】【第三章】标准库类型之:bitset类型
- C++ Primer 学习笔记9 表达式 (求余、自增和自减操作符、箭头操作符、条件表达式、sizeof操作符、逗号操作符)
- C++ primer (5th) 随想与学习笔记 4 基本类型很全面 新标准更灵活
- 《c++ primer》 第8章 IO库 学习笔记
- C++ primer (5th) 随想与学习笔记 6 优先级晦涩难通 新标准更清晰
- C++ primer (5th) 随想与学习笔记 7 执行流程永不变 新标准添精彩
- 【C++ Primer】【学习笔记】【第三章】标准库类型之:vector类型