C++ 文件讀寫 fstream/ifstream/ofstream操作

寫這篇文章初衷為在使用ofstream時,想在文件末尾追加,但是設置seekp(0,ios::end),每次仍然會覆蓋掉之前內(nèi)容。

1- ofstream流

  • 以ios::app打開(或者“ios::app|ios::out”),如果沒有文件,那么生成空文件;如果有文件,那么在文件尾追加。
  • 以ios::app|ios::in打開,不管有沒有文件,都是失敗。
  • 以ios::ate打開(或者”ios::ate|ios::out”),如果沒有文件,那么生成空文件;如果有文件,那么清空該文件
  • 以ios::ate|ios::in打開,如果沒有文件,那么打開失?。蝗绻形募?,那么定位到文件尾,并可以寫文件,但是不能讀文件

2- ifstream流

  • 以ios::app打開(“ios::app|ios::out”),不管有沒有文件,打開都是失敗。
  • 以ios::ate打開(“ios::ate|ios::out”),如果沒有文件,打開失敗
    如果有文件,打開成功,并定位到文件尾,但是不能寫文件

3- fstream流

  • 默認是ios::in,所以如果沒有文件,ios::app和ios::ate都是失敗,

  • 以ios::app|ios::out,如果沒有文件則創(chuàng)建文件,如果有文件,則在文件尾追加

  • 以ios::ate|ios::out打開,如果沒有文件則創(chuàng)建文件,如果有,則清空文件。

  • 以ios::ate|ios::out|ios::in打開,如果沒有文件,則打開失敗,有文件則定位到文件尾

可見:ios::app不能用來打開輸入流,即不能和ios::in相配合
而ios::ate可以和ios::in配合,此時定位到文件尾;如果沒有ios::in相配合而只是同ios::out配合,那么將清空原文件
(ios::ate|ios::in–>在原文件尾追加內(nèi)容;ios::ate—>清空原文件,ios::out是默認必帶的,可加上也可不加,對程序無影響)

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • [轉]C/C++ 文件讀寫操作總結 在編程的過程中,文件的操作是一個經(jīng)常用到的問題,在C++Builder中,可以...
    天之道天知道閱讀 5,297評論 0 7
  • c++文件操作: 文件操作三大步(邏輯如下):1、打開文件2、讀寫文件3、關閉文件 介紹下頭文件: #includ...
    北影拼搏閱讀 820評論 0 2
  • fstreaml類 fstream提供了三個類,用來實現(xiàn)c++對文件的操作(文件的創(chuàng)建、讀、寫) fstream ...
    Lee_5566閱讀 487評論 0 1
  • 轉載(https://www.cnblogs.com/MrYuan/p/5383408.html) 基于C的文件操...
    送分童子笑嘻嘻閱讀 501評論 0 0
  • 一. 基礎知識 讀寫文件的頭文件:#include <fstream> 打開方式:ios :: in , 讀文件打...
    當學霸007閱讀 206評論 0 0

友情鏈接更多精彩內(nèi)容