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

但是我看不懂最后一句,什么叫使用和不使用“ios::out”呢??

ios::out本身不是就是打开一个可写文件吗?  
既然都能追加写入了,还能不让写?

谢谢。

answer1:

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

ios::app  多个线程或者进程对一个文件写的时候,假如文件原来的内容是abc,第一个线程(进程)往里面写了个d,第二个线程(进程)写了个e的话,结果是 abcde

ios:ate的话,后面写的回覆盖前面一个写的,还是上面那个例子的话(第二个后写)结果为abce

answer2:
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配合,那么将清空原文件

可以在《C++  输入输出流及本地化》1.4.2中找到更详细的描述:(大意)以ios::app方式打开文件,即使修改文件指针,也只能输出到文件尾。实际上以 ios::app打开的文件的

ios::app与ios::ate打开方式有什么不同??相关推荐

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

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

  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. 防护IOS APP安全的几种方式

    1.URL编码加密 对iOS app中出现的URL进行编码加密,防止URL被静态分析 2.本地数据加密 对NSUserDefaults,sqlite存储文件数据加密,保护iOS app的帐号和关键信息 ...

  4. iOS ----------怎么修改xcode默认打开方式

    很简单就能解决:选中文件,右键,显示简介,打开方式,选择8.2.然后打钩. 转载于:https://www.cnblogs.com/KiVen2015/p/6635728.html

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

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

  6. ios app安装的四种方式

    第一种,用户直接通过App Store下载安装 苹果官方通过非对称加密生成一对公私钥,在iOS设备内置了一个公钥,在苹果后台保存了对应的私钥,在开发者把app上传到App Store时,苹果用私钥对这 ...

  7. 微信浏览器打开ios App Store 并且可以打开或下载pp

    下面就是关键了 var url = "https://itunes.apple.com/cn/app/idxxxxx";         setTimeout(function() ...

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

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

  9. iOS App 连接外设的几种方式

    原创作者: Max_Marry 文章地址: http://www.jianshu.com/p/852bf92c5c92 随着近年来车联网和物联网的兴起,智能家居和智能硬件的逐步火热,越来越多的 App ...

最新文章

  1. 腾讯万亿级 Elasticsearch 技术解密
  2. 全链路压测体系建设方案的思考与实践
  3. 【CVPR2020来啦】不容错过的29个教程Tutorial !(附Slides下载链接)
  4. python在日常工作处理中的应用-Python全栈开发在实际工作中的应用
  5. 谈谈高并发系统的限流
  6. 方舟服务器修改错误,方舟进服务器提示网络错误怎么办 | 手游网游页游攻略大全...
  7. 数论 欧几里得与扩展欧几里得
  8. java非阻塞锁_Java并发问题的非阻塞解决方案
  9. 29 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义分配
  10. 是哪个app_互联网APP创业哪个好
  11. SpringBoot之Bean之条件注入@ConditionalOnProperty
  12. 03 Python爬虫之Requests网络爬取实战
  13. 【NLP】目前有比Topic Model更先进的聚类方式么?比如针对短文本的、加入情感分析的?...
  14. .net 2.0 服务器应用程序不可用 解决方案集
  15. How To Read C Declarations
  16. 电脑自带蓝牙与HC-06蓝牙模块使用串口助手通信
  17. 3亿流量还能让Keep错几次?
  18. 计算机应用公式基础教学教案,《终稿[定稿]大学计算机应用基础全册教案版》...
  19. 用计算机中的知识秀恩爱,用你的专业,说最美的情话......
  20. qurlinfo在qt5中_QT5编译使用QFtp的方法步骤

热门文章

  1. c语言万年历查询程序代码,C语言 万年历程序(示例代码)
  2. 【数据结构与算法】之深入解析“石子游戏”的求解思路与算法示例
  3. 我的Go+语言初体验--Go+之环境安装与程序编码初体验
  4. RxSwift之UI控件UISlider与UIStepper扩展的使用
  5. HarmonyOS之常用布局StackLayout的使用
  6. Swift之本地国际化与App内切换语言
  7. Django框架搭建
  8. 安装好Pycharm后如何配置Python解释器简易教程(configure python interpreter)
  9. Dev-C++实现调试功能
  10. 【STM32】窗口看门狗相关类型和函数