- C++没有直接处理IO,而是委派标准库:
- 三个涉及IO的标准库头文件
iostream
,fstream
,sstream
: - IO库为了隐藏硬件细节,实现抽象化,不同流之间是继承关系:
,关于继承的简单理解:
,对应到流的UML(universal modeling language):
- 通常对于将流作为参数的情况下,因为流不可复制同时流的状态会改变,所以正常是传引用进行:
- 凡是与用户打交道的,就永远判断异常情况,流也不例外:
,对于将流的对象作为条件判断时的正确解读为:
- 在流的各种状态中,
fail()
和good()
会实用一些: - 流内部的缓冲区管理:
,不难发现,使用
cin
时就在刷新cout
,对于debug时需要及时刷新缓冲区内容: - 专门用于
File IO
的操作,这里面相比于C++98:文件名也支持string,同时流有多种构造函数: - 文件流的open操作可能会失败,同时已经与文件绑定的文件流再用open操作时就一定会失败,需要先关闭,然后再打开:
- 每个文件流都有文件模式来限制对文件进行的操作:
- 将
string
看作一个文件的话,衍生出stringstream
,专属的操作有: istringstream
的用处,总结的不错:,简单而言:
- 将一些输出信息攒着,直到后续再输出的情况下可以用
ostringstream
来帮忙:
Cxx primer-chap8-The IO Library
于 2024-07-25 21:37:35 首次发布