ofstream流,以ios::app打开(或者“ios::app|ios::out”),如果没有文件,那么生成空文件;如果有文件,那么在文件尾追加。
以ios::app|ios::in打开,不管有没有文件,都是失败。
以ios::ate打开(或者”ios::ate|ios::out”),如果没有文件,那么生成空文件;如果有文件,那么清空该文件
以ios::ate|ios::in打开,如果没有文件,那么打开失败;如果有文件,那么定位到文件尾,并可以写文件,但是不能读文件

ifstream流,以ios::app打开(“ios::app|ios::out”),不管有没有文件,打开都是失败。
以ios::ate打开(“ios::ate|ios::out”),如果没有文件,打开失败
如果有文件,打开成功,并定位到文件尾,但是不能写文件

fstream流,默认是ios::in,所以如果没有文件,ios::app和ios::ate都是失败,
以ios::app|ios::out,如果没有文件则创建文件,如果有文件,则在文件尾追加
以ios::ate|ios::out打开,如果没有文件则创建文件,如果有,则清空文件。
以ios::ate|ios::out|ios::in打开,如果没有文件,则打开失败,有文件则定位到文件尾

可见:ios::app不能用来打开输入流,即不能和ios::in相配合
而ios::ate可以和ios::in配合,此时定位到文件尾;如果没有ios::in相配合而只是同ios::out配合,那么将清空原文件
(ios::ate|ios::in–>在原文件尾追加内容;ios::ate—>清空原文件,ios::out是默认必带的,可加上也可不加,对程序无影响)
可以在《C++ 输入输出流及本地化》1.4.2中找到更详细的描述:(大意)以ios::app方式打开文件,即使修改文件指针,也只能输出到文件尾。实际上以ios::app打开的文件的写入,和文件指针五关。
(这里就指出了ate和app的关键区别,app只能在尾部追加,ate可以配合指针修改文件中的部分内容。)
奇怪的是:《C++ 输入输出流及本地化》和《C++编程思想》都说以ios::ate打开的文件,文件指针都会定位到文件尾且不清空文件,但是我发现ios::ate如果不和ios::in配合的话,将清空原文件

ofstream之ios::ate,ios::app,ios::in,ios::out相关推荐

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

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

  2. ios::ate ios::app ios::out ios::in ios::trunc ios::binary(组合总结)

    一.情况1 [file1会被截断] ofstream out("file1"); ofstream out("file1", ofstream::out); o ...

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

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

  4. ios::app与ios::ate的区别

    文件流 ios::app ios::ate 打开方式 结果 打开方式 结果 ofstream (默认是ios::in | ios::trunc) ios::app或ios::app|ios::out ...

  5. iOS 走近商城 APP(三 WKWebView 商品规格选择框架封装)

    原文链接:http://www.jianshu.com/p/293ee1bfe104 商城 -- 由 3033 分享 开篇 忽然发现最近也只有值班才能写东西了,中间更新了两篇其他的断了下商城相关的文章 ...

  6. iOS progressive Web App (PWA) 技术

    随着 iOS 11.3 的发布,iOS + PWA 的时代终于来了!本文对 iOS 中 PWA 的能力进行了分析,并将其与 iOS 上的 Native App.Android 上的 PWA 进行了深度 ...

  7. iOS走近商城APP(四 runloop应用 获取通讯录并处理)

    ###开篇 转眼又要过年了,我的程序员生涯默默的又过了一年,年终篇就先闲扯几句.从接触简书到写第一篇到现在差不多也将近一年了,简书的布局风格确实是赏心悦目,习惯了这种写法之后,再看以前的博客感觉好乱, ...

  8. iOS 跳转App的二三事

    前言 在iOS平台上,经常有这样的需求,当用户在操作的时候需要唤醒或者说跳转到另外一个App中进行操作. 这其中的类型又分为: App -> App 浏览器web页面 -> App 第一种 ...

  9. 给iOS 模拟器“安装”app文件

    前言 刚刚接触iOS的时候,我就一直很好奇,模拟器上面能不能直接安装app呢?如果可以,我们就直接在模拟器上面聊QQ和微信了.直到昨天和朋友们聊到了这个话题,没有想到还真的可以给模拟器"安装 ...

最新文章

  1. Jquery真的不难~第八回 JS的闭包问题
  2. UA MATH571B 试验设计 2k析因设计理论下
  3. 启明云端分享|ESP32/ESP8266 烧录器 USB-TTL转接板开发工具ESP-T01的使用教程,视频可参考B站
  4. python基础-类的继承
  5. 2017蓝桥杯省赛---java---C---2(兴趣小组)
  6. 利用 dbghelp.dll 生成 dump 文件
  7. Codeforces 138C(区间更新+离散化)
  8. Python稳基修炼之计算机等级考试易错概念题6(含答案)
  9. Android - Broadcast机制
  10. SpringBoot整合定时任务(在线Cron表达式生成器)
  11. RESTClient用法
  12. 基于角色得后台权限管理系统设计(一、表设计)
  13. 通过js操作jwplayer来播放暂停
  14. 一个逆向程序猿的必备技能
  15. 如何用计算机控制三相电机,计算机控制 课程设计 三相步进电机控制.docx
  16. kappa一致性检验教程_一致性检验(kappa一致性分析)
  17. OneZero第四周第二次站立会议(2016.4.12)
  18. 218. 天际线问题
  19. MOOS程序解析记录(7)pMarinePID解析
  20. DIY激光枪薄纱蟑螂!AI杀蚊子博士新作,项目已开源

热门文章

  1. 超详细介绍!!!带你认识各种进制数的及其转换以及原码,反码,补码
  2. SuperMap大赛——命题开发组
  3. html个人签到送一句话,一句话签到语录
  4. 2.2.1新增-contentEditable属性
  5. asp.net简单介绍(还有完整项目资源可以下载)
  6. notion在WIN10设置中文
  7. 26岁美女数据总监,分享第一次做Leader的心得!
  8. 【PSO TSP】基于matlab GUI粒子群算法求解旅行商问题【含Matlab源码 1334期】
  9. 智慧酒店方案打造独特的智能化科技体验
  10. 帆软报表sum求和不展示问题