C++ IO库下的 文件,字符串,流操作
前:本文以零散记录为主,不成内容,不成逻辑
C++为我们定义了不少IO类,大约有三类
| 头文件 | 功能 |
| iostream | 流 |
| fstream | 文件 |
| sstrem | string类 |
一:
IO类对象没有拷贝和赋值,因此不能直接返回IO类,应该使用引用,而且还不能使用const.
二:
IO类会有各种属性,c++提供一套类内函数,例如 rdstate()获取流的当前状态, clear(),是所有的条件状态复位,将流的状态设为有效,而 eof , fail , bad ,good ,获得IO类的条件状态 eofbit(达到文件结尾),faileof(io操作失败) ,badeof(流已崩溃),goodeof (未出现错误)。一个流一旦进入错误状态,之后所有的IO操作都会失败。
三:缓存区:
容许系统将多个操作组合成单一的设备写操作,可以带来很大的性能提升,而导致缓冲刷新的原因有很多:
1.return 2.缓存已满 3.显式刷新缓存区,endl/flush 4.设置为unitbuf 5.关联流
四:文件流
文件模式:与c语言类似,有 in (读) ,out (写) ,app(每一次操作前都定位到文件末尾),ate(打开文件后立刻定义到文件末尾),trunc(文件截断),binary(二进制打开)
,其中 out默认搭配 trunc 模式。
文件流 fstream的自动构造和析构:对于循环体内中的fstream,局部变量,会在每一个循环步内都要创建和销毁一次。当一个fstream对象离开作用域时,与之关联的文件会自动关闭。
五:string流
用途:处理单行中的单个单词可以使用string 类
浙公网安备 33010602011771号