ifstream/ofstream打开模式详解:in/out/ate/app/trunc/binary
请详细解释 C++ fstream 的文件打开模式 flags:ios::in、ios::out、ios::ate、ios::app、ios::trunc、ios::binary 的含义和组合使用场景,并说明 ifstream/ofstream/fstream 的默认模式。
回答
小字辈
文件打开模式可用 | 组合:
ios::in:以读取方式打开(ifstream 默认包含)。ios::out:以写入方式打开(ofstream 默认包含,隐含 trunc)。ios::app:追加写入,每次写操作在文件末尾。ios::ate:打开后文件指针指向末尾,但可移动指针写入任何位置。ios::trunc:若文件存在则截断为空(默认与 out 同时使用)。ios::binary:以二进制模式打开,不进行换行符转换。
常用组合:
ofstream fout("f.txt")→out | truncofstream fout("f.txt", ios::app)→ 追加模式fstream fio("f.txt", ios::in | ios::out)→ 读写不截断ifstream fin("f.bin", ios::binary)→ 二进制读
注意:ate 和 app 的区别在于 ate 可移动写指针,app 每次写强制到末尾。