一、C++ 和 C 文件打开模式
C++ 模式 | C模式 | 含义 |
---|---|---|
ios_base::in | r | 打开以读取 |
ios_base::out | w | 打开以写入,如果已经存在,则截短文件 |
ios_base::out | ios_base::trunc | w | 打开以写入,如果已经存在,则截短文件 |
ios_base::out | ios_base::app | a | 打开以写入,只追加 |
ios_base::in | ios_base::out | r+ | 打开以读写,在文件允许的位置写入 |
ios_base::in | ios_base::out | ios_base::trunc | w+ | 打开以读写,如果已经存在,则首先截短文件 |
c++ mode | ios_base::binary | cmodeb | 以 C++ mode 和二进制模式打开 |
c++mode | ios_base::ate | cmode | 以指定模式打开,并移到文件尾 |
二、读操作详解
模式 | 权限性 | 存在性 | 截短性 | 文件类型 |
---|---|---|---|---|
r | 只读 | 必须存在 | - | - |
r+ | 读写 | 必须存在 | 覆盖原文件 | - |
rt | 只读 | 必须存在 | - | 文本文件 |
rt+ | 读写 | 必须存在 | 覆盖原文件 | 文本文件 |
rb | 只读 | 必须存在 | - | 二进制文件 |
rb+ | 读写 | 必须存在 | 覆盖原文件 | 二进制文件 |
三、写操作详解
模式 | 权限性 | 存在性 | 截短性 | 文件类型 |
---|---|---|---|---|
w | 只写 | 可以不存在 | 清空原文件 | - |
w+ | 读写 | 可以不存在 | 清空原文件 | - |
wt | 只写 | 可以不存在 | 清空原文件 | 文本文件 |
wt+ | 读写 | 可以不存在 | 清空原文件 | 文本文件 |
wb | 只写 | 可以不存在 | 清空原文件 | 二进制文件 |
wb+ | 读写 | 可以不存在 | 清空原文件 | 二进制文件 |
四、添加操作详解
模式 | 权限性 | 存在性 | 截短性 | 文件类型 |
---|---|---|---|---|
a | 只写 | 可以不存在 | 文件尾添加数据 | - |
a+ | 读写 | 可以不存在 | 文件尾添加数据 | - |
at | 只写 | 可以不存在 | 文件尾添加数据 | 文本文件 |
at+ | 读写 | 可以不存在 | 文件尾添加数据 | 文本文件 |
ab | 只写 | 可以不存在 | 文件尾添加数据 | 二进制文件 |
ab+ | 读写 | 可以不存在 | 文件尾添加数据 | 二进制文件 |