C++ Primer 英文版(第 5 版) 9.3分
读书笔记 8.1 The IO Classes
Dirischlecht

关于流的头文件:

流iostream: 包括istream/ostream/iostream类型

文件流fstream: 包括ifstream/ofstream/fstream

in-memory string流sstream: 包括istringstream/ostringstream/stringstream类型

处理wchar_t的版本的类型加前缀w

--------------------------------------------------------------------------------------------------------------------------

io类型不能拷贝和赋值

不能拷贝意味着不能直接作为参数和返回类型,只能通过引用来操作

读写会改变io对象,因此不用const

--------------------------------------------------------------------------------------------------------------------------

strm::iostate 表示流状态的类型

strm::badbit s.bad() 表示/返回(true/fales)不可恢复(corrupted)的错误的位

strm::failbit s.fail() 表示/返回(true/fales)可恢复(failed)的错误的位,badbit/eofbit被置位时也会被置位,这一特性使其适用于条件检查 if(s)

strm::eofbit s.eof() 表示/返回(true/fales)遇到EOF时的位

strm::goodbit s.good() 表示/返回(true/fales)无错误时的位

s.clear() s.clear(flags) s.setstate(flags)清除所有错误/s状态变为和flags一致/s添加某状态flags

s.rdstate() 返回s当前状态

--------------------------------------------------------------------------------------------------------------------------

程序正常结束(不包括异常结束)、buffer已满、使用显式flush操作符(<<endl、<<flush、<<ends)、设置unitbuf、输入tie to输出等情况下,输出会flushed,例如:

cout<<unitbuft //每次写入操作立即flush

cout<<nounitbuf //恢复正常buffer操作

cin.tie(&cout) cin tie to cout(系统默认配置,当有cin读入时自动flushcout)

cin.tie(nullptr) cin tie to nothing(输入只能tie to唯一输出,但多个输入可以tie to同一输出)

cin.tie(&cerr) cin tie to cerr

0
《C++ Primer 英文版(第 5 版)》的全部笔记 79篇
豆瓣
免费下载 iOS / Android 版客户端