38.7 建议
[1]若用户自定义类型的值存在有意义的文本表示,可为其定义<<和>>;38.1节,38.4.1节,38.4.2节。
[2]用cout进行正常输出,用cerr输出错误;38.1节。
[3]标准库提供了普通字符和宽字符的iostream,你可以为任意类型的字符定义iostream;38.1节。
[4]标准库为标准I/O流、文件和string定义了标准iostream;38.2节。
[5]不要尝试拷贝一个文件流;38.2.1节。
[6]二进制I/O依赖于系统;38.2.1节。
[7]在使用文件流之前记得检查它是否已关联到文件;38.2.1节。
[8]优先选择ifstream和ofstream而非通用的fstream;38.2.1节。
[9]用stringfstream进行内存中的格式化;38.2.2节。
[10]用异常机制捕获稀少的bad()-I/O错误;38.3节。
[11]用流状态fail处理潜在的可恢复I/O错误;38.3节。
[12]为了定义新的<<和>>你无需修改istream或ostream;38.4.1节。
[13]当实现iostream原语操作时,使用sentry;38.4.1节。
[14]优先选择格式化输入而非未格式化的、底层的输入;38.4.1节。
[15]读取输入存入string不会导致溢出;38.4.1节。
[16]当使用get()、getline()和read()时,要小心结束标准;38.4.1节。
[17]>>默认忽略空白符;38.4.1节。
[18]你可以定义行为类似虚函数的<<(或>>),其行为由其第二个运算对象所决定;38.4.2.1节。
[19]优先选择操纵符而非状态标志来控制I/O;38.4.3节。
[20]如果你希望混合C风格I/O和iostream-I/O,使用sync_with_stdio(true);38.4.4节。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access