文件打开模式 C++

1. 文件模式常量

常量含义
ios_base::in打开文件,以便读取
ios_base::out打开文件,以便写入
ios_base::ate打开文件,并移到文件尾
ios_base::app追加到文件尾
ios_base::trunc如果文件存在,则截短文件
ios_base::binary二进制文件

ifstream/ofstream/fstream构造函数以及open()方法都接受两个参数。

ifstream open()方法和构造函数用ios_base::in作为模式参数的默认值;ofstream open()方法和构造函数用ios_base::out|ios_base::trunc作为模式参数的默认值;fstream类不提供默认的模式值,因此在创建这种类的对象时,必须显式的提供模式。

2. C++和C的文件打开模式

C++模式C模式含义
ios_base::in"r"打开以读取
ios_base::out"w"等价于ios_base::out | ios_base::trunc
ios_base::out | ios_base::trunc"w"打开以写入,如果已存在,则截短文件
ios_base::out | ios_base::app"a"打开以写入,只追加
ios_base::out | ios_base::in"r+"打开以读写,在文件允许的位置写入
ios_base::out | ios_base::in | ios_base::trunc"w+"打开以读写,如果已存在,则截短文件
c++mode | ios_base::binary"cmodeb"以C++mode(或相应的cmode)和二进制模式打开;例如,ios_base::in|ios_base::binary成为"rb"
c++mode | ios_base::ate"cmode"以指定的模式打开,并移至文件末尾。C使用一个独立的函数调用,而不是模式编码。例如,ios_base::in|ios_base::ate被转换为"r"模式和C函数调用feek(file, 0, SEEK_END)

注意,ios_base::ate和ios_base::app都将文件指针指向打开的文件尾,二者的区别在于,ios_base::app模式只允许将数据添加到文件尾,而ios_base::ate模式将指针放到文件尾。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值