文件流

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的区别相关推荐

  1. ios::app与ios::ate打开方式有什么不同??

    看一个资料上说:   1.ios::app    ----写入的数据将被追加在文件的末尾,此方式使用ios::out   2.ios::ate    ----写入的数据将被追加在文件的末尾,此方式不使 ...

  2. C++ ifstream ofstream 用法解析(iostream、fstream头文件)(ios::app、ios::ate、ios::in、ios::out、ios::trunc)(未完)

    参考文章1:C++文件读写详解(ofstream,ifstream,fstream) 参考文章2:C++ 文件和流 文章目录 C++ 文件和流 打开文件 关闭文件 写入文件 读取文件 读取 & ...

  3. 2022 ios APP最新iOS开发上架测试教程

    2022 ios APP最新开发测试教程 本文详细介绍最新的在windows上进行ios app开发编译打包安装到手机测试的完整流程.介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios ...

  4. ofstream之ios::ate,ios::app,ios::in,ios::out

    ofstream流,以ios::app打开(或者"ios::app|ios::out"),如果没有文件,那么生成空文件:如果有文件,那么在文件尾追加. 以ios::app|ios: ...

  5. iOS App Thinning

    iOS App Thinning iOS App瘦身功能,不错的文章: 初探 iOS 9 的 App 瘦身功能 App thinning overview (iOS, tvOS, watchOS) 安 ...

  6. 基于H5的App在IOS App Store的打包发布流程

    基于H5的App在IOS App Store的打包发布流程 0.说明 1.ios证书配置 (1)创建CSR文件 (2)申请开发者证书 (3)申请推送证书 (4)申请provisioning profi ...

  7. Android 和 iOS APP 测试的区别

    目前市面上主流的移动操作系统就是 Android 和 iOS 两种,移动端测试本身就跟 Web 应用测试有自己的专项测试,比如安装.卸载.升级.消息推送.网络类型测试.弱网测试.中断测试.兼容性测试等 ...

  8. iOS APP提交上架最新流程

    iOS APP提交上架最新流程 反复提交的过程中对上架流程熟悉了好多,写篇帖子送给同为菜鸟的你,如果里面有很菜的东西,大牛请自动忽略,毕竟这也是还为菜鸟的我的备忘录呢! 首先得描述一下各个证书的定位, ...

  9. iOS APP提交上架流程

    转载自CocoaChina,链接地址:http://www.cocoachina.com/bbs/read.php?tid=330302 后面问题我也遇到了,参考该文章解决的 转自http://blo ...

最新文章

  1. Hdu 1217 最短路.cpp
  2. Maven安装和配置环境变量
  3. 如何实现linux+windows双系统启动
  4. 论文笔记:孪生神经网络(Siamese Network)
  5. Spread for Windows Forms快速入门(2)---设置Spread表单
  6. HR面 - 十大经典提问
  7. 设计模式之策略者模式
  8. friendly发音_friendly是什么意思_friendly怎么读_friendly翻译_用法_发音_词组_同反义词_友好的_亲密的-新东方在线英语词典...
  9. 参考文献自动搜集管理完美攻略(图文版): Latex+Lyx+Zotero
  10. JDBC学习笔记(查询SQL语句得到的结果对象)
  11. java 详情页_电商网站详情页系统架构
  12. 尼尔机械纪元免安装中文 2B的姐姐单机游戏 NieR Automata +修改器解锁存档
  13. Word2010中插入多级列表编号将默认标题样式变成多级编号
  14. java抖音字符视频_代码生成抖音文字视频
  15. 支付支付简要原理整理
  16. CentOS 6.X yum源更新(阿里云默认最新更新为CentOS6.10)
  17. Zigbee通讯之开发篇(基于TI 的Z-Stack)
  18. 集成平台Ensemble环境搭建(HealthShare) 及MIRROR镜像(主备机)的配置
  19. 局域网在线设备扫描工具 v1.0
  20. 运维工程师的发展前景如何?

热门文章

  1. 遇见未来的自己作文800计算机,遇见未来的自己作文
  2. java中的正则表达式详解
  3. 一个人最多可以备案多少个网站?
  4. 课后作业5:进程的同步与互斥
  5. 丹尼带你入坑无人机1 - 认识无人机(四轴)
  6. 对博客园不敢恭维!!!
  7. 外卖点餐自取连锁多店小程序开发
  8. win10计算机同步在哪个文件夹,公文包和文件夹的区别在哪?Win10公文包怎样同步?...
  9. 周志华组最新论文提出“溯因学习”,受玛雅文字启发的神经逻辑机
  10. Gazebo下借助ORB_SLAM2进行自定义相机参数的双目视觉仿真