ios::app与ios::ate的区别
文件流 |
ios::app |
ios::ate |
||
打开方式 |
结果 |
打开方式 |
结果 |
|
ofstream (默认是ios::in | ios::trunc) |
ios::app或ios::app|ios::out |
如果没有文件,生成空文件; 如果有文件,在文件尾追加 |
ios::ate或ios::ate|ios::out |
如果没有文件,生成空文件; 如果有文件,清空该文件 |
ios::app|ios::in |
不管有没有文件,都是失败 |
ios::ate|ios::in |
如果没有文件,打开失败; 如果有文件,定位到文件尾,可以写文件,但是不能读文件 |
|
Ifstream (默认是ios::in) |
ios::app或ios::app|ios::out |
不管有没有文件,都是失败 |
ios::ate或ios::ate|ios::out |
如果没有文件,打开失败; |
ios::app|ios::in |
? |
ios::ate|ios::in |
? |
|
fstream (默认是ios::in | ios::out) |
ios::app|ios::out |
如果没有文件,创建文件; 如果有文件,在文件尾追加 |
ios::ate|ios::out |
如果没有文件,创建文件; 如果有,清空文件 |
ios::app|ios::in |
如果没有文件,失败 |
ios::ate|ios::in |
如果没有文件,失败 |
|
N/A |
N/A |
ios::ate|ios::out|ios::in |
如果没有文件,打开失败, 如果有文件,定位到文件尾 |
|
总结 |
ios::app不能和ios::in相配合, 但可以和ios::out配合,打开输入流 |
ios::ate可以和ios::in配合,此时定位到文件尾; 如果没有ios::in相配合而只是同ios::out配合,那么将清空原文件; |
||
区别 |
app会在每次写操作之前都把写指针置于文件末尾, |
而ate模式则只在打开时才将写指针置于文件末尾。在文件操作过程中,可以通过seekp等操作移动指针位置。 |
||
例子: 多个线程或者进程对一个文件写的时候,假如文件原来的内容是abc |
以ios::app: 第一个线程(进程)往里面写了个d,第二个线程(进程)写了个e的话,结果是abcde |
以ios:ate: 后面写的会覆盖前面一个写的,第一个线程(进程)往里面写了个d,第二个线程(进程)写了个e的话,结果为abce |
ios::app与ios::ate的区别相关推荐
- ios::app与ios::ate打开方式有什么不同??
看一个资料上说: 1.ios::app ----写入的数据将被追加在文件的末尾,此方式使用ios::out 2.ios::ate ----写入的数据将被追加在文件的末尾,此方式不使 ...
- C++ ifstream ofstream 用法解析(iostream、fstream头文件)(ios::app、ios::ate、ios::in、ios::out、ios::trunc)(未完)
参考文章1:C++文件读写详解(ofstream,ifstream,fstream) 参考文章2:C++ 文件和流 文章目录 C++ 文件和流 打开文件 关闭文件 写入文件 读取文件 读取 & ...
- 2022 ios APP最新iOS开发上架测试教程
2022 ios APP最新开发测试教程 本文详细介绍最新的在windows上进行ios app开发编译打包安装到手机测试的完整流程.介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios ...
- ofstream之ios::ate,ios::app,ios::in,ios::out
ofstream流,以ios::app打开(或者"ios::app|ios::out"),如果没有文件,那么生成空文件:如果有文件,那么在文件尾追加. 以ios::app|ios: ...
- iOS App Thinning
iOS App Thinning iOS App瘦身功能,不错的文章: 初探 iOS 9 的 App 瘦身功能 App thinning overview (iOS, tvOS, watchOS) 安 ...
- 基于H5的App在IOS App Store的打包发布流程
基于H5的App在IOS App Store的打包发布流程 0.说明 1.ios证书配置 (1)创建CSR文件 (2)申请开发者证书 (3)申请推送证书 (4)申请provisioning profi ...
- Android 和 iOS APP 测试的区别
目前市面上主流的移动操作系统就是 Android 和 iOS 两种,移动端测试本身就跟 Web 应用测试有自己的专项测试,比如安装.卸载.升级.消息推送.网络类型测试.弱网测试.中断测试.兼容性测试等 ...
- iOS APP提交上架最新流程
iOS APP提交上架最新流程 反复提交的过程中对上架流程熟悉了好多,写篇帖子送给同为菜鸟的你,如果里面有很菜的东西,大牛请自动忽略,毕竟这也是还为菜鸟的我的备忘录呢! 首先得描述一下各个证书的定位, ...
- iOS APP提交上架流程
转载自CocoaChina,链接地址:http://www.cocoachina.com/bbs/read.php?tid=330302 后面问题我也遇到了,参考该文章解决的 转自http://blo ...
最新文章
- Hdu 1217 最短路.cpp
- Maven安装和配置环境变量
- 如何实现linux+windows双系统启动
- 论文笔记:孪生神经网络(Siamese Network)
- Spread for Windows Forms快速入门(2)---设置Spread表单
- HR面 - 十大经典提问
- 设计模式之策略者模式
- friendly发音_friendly是什么意思_friendly怎么读_friendly翻译_用法_发音_词组_同反义词_友好的_亲密的-新东方在线英语词典...
- 参考文献自动搜集管理完美攻略(图文版): Latex+Lyx+Zotero
- JDBC学习笔记(查询SQL语句得到的结果对象)
- java 详情页_电商网站详情页系统架构
- 尼尔机械纪元免安装中文 2B的姐姐单机游戏 NieR Automata +修改器解锁存档
- Word2010中插入多级列表编号将默认标题样式变成多级编号
- java抖音字符视频_代码生成抖音文字视频
- 支付支付简要原理整理
- CentOS 6.X yum源更新(阿里云默认最新更新为CentOS6.10)
- Zigbee通讯之开发篇(基于TI 的Z-Stack)
- 集成平台Ensemble环境搭建(HealthShare) 及MIRROR镜像(主备机)的配置
- 局域网在线设备扫描工具 v1.0
- 运维工程师的发展前景如何?