设为首页 加入收藏

TOP

C++文件流打开方式的使用
2013-11-20 14:23:21 来源: 作者: 【 】 浏览:98
Tags:文件 打开 方式 使用

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

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

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

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

  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++ 获得文件大小的方法 下一篇C++如何生成utf-8编码的文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)
·MySQL 索引 - 菜鸟教 (2025-12-24 10:18:06)
·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)