《C++ Primer Plus》17. 输入、输出和文件
流、缓冲区与 iostream
streambuf
类为缓冲区提供了内存,并提供了用于填充缓冲区、访问缓冲区内容、刷新缓冲区和管理缓冲区内存的类方法ios_base
类表示流的一般特征,如是否可以读取、是二进制流还是文本流ios
类基于ios_base
,其中包括了一个指向streambuf
对象的指针成员ostream
和istream
从ios
类派生而来,分别提供了输出方法和输入方法iostream
基于ostream
和istream
类
C++ 11 添加了 char16_t
和 char32_t
,开发了一套 IO 模板,包括basic_istream<charT, traits<charT>>
和 basic_ostream<charT, traits<charT>>
其中,traits<charT>
模板是一个模板类,为字符串类型定义了具体特性,如如何比较字符是否相等以及字符的 EOF 值等
istream
、ostream
是 char
具体化的 typedef
,同理 wistream
、wostream
是 wchar_t
具体化的 typedef
,还有 wcout
、wcin
、wcerr
等
cin
的流状态
只有在流的每个状态位置都是 false
时,下面的测试才返回 true
:
while (cin >> input)
如果出现错误,最好直接跳过一行或者跳到空白字符
其他 istream
方法
get
getline
ignore
read
peek
gcount
putback