《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 方法
getgetlineignorereadpeekgcountputback