fstream、ifstream、ofsream使用的一點總結

來源:互聯網
上載者:User
寫程式時,有一段代碼使用了fstream來建立、讀寫隱藏檔案,但是卻發現了一些奇怪的問題:該建立時不建立,存在時卻無法讀取、修改,下面對這三類對象做了測試和總結,記錄如下:  1 測試檔案不存在時建立檔案
=========================================================fstream fs("aaa.txt", ios_base::in)      不建立
fstream fs("aaa.txt", ios_base::out)      建立
fstream fs("aaa.txt", ios_base::trunc)      不建立
fstream fs("aaa.txt"); //等同於下行
fstream fs("aaa.txt", ios_base::in | ios_base::out)    不建立
fstream fs("aaa.txt", ios_base::in | ios_base::trunc);   不建立
fstream fs("aaa.txt", ios_base::out | ios_base::trunc);   建立
fstream fs("aaa.txt", ios_base::in | ios_base::out | ios_base::trunc); 建立以上總結:
fstream 在檔案不存在時建立
要麼單獨使用ios_base::out
要麼同時使用ios_base::out | ios_base::trunc
=========================================================ofstream與fstream並沒有太大不同,
只是在你開啟時,不管有沒加ios_base::out,反正都會或一次(“_Mode | ios_base::out”)由前文結論可推斷,以下三種情況會建立檔案,其餘都不建立:ofstream ofs("aaa.txt")
ofstream ofs("aaa.txt", ios_base::trunc)
ofstream ofs("aaa.txt", ios_base::in | ios_base::trunc)  2 測試讀取隱藏檔案  =========================================================fstream fs("aaa.txt", ios_base::in)      能
fstream fs("aaa.txt", ios_base::out)      不能
fstream fs("aaa.txt", ios_base::trunc)      不能
fstream fs("aaa.txt"); //等同於下行
fstream fs("aaa.txt", ios_base::in | ios_base::out)    能
fstream fs("aaa.txt", ios_base::in | ios_base::trunc);   不能
fstream fs("aaa.txt", ios_base::out | ios_base::trunc);   不能
fstream fs("aaa.txt", ios_base::in | ios_base::out | ios_base::trunc); 不能以上總結:
fstream開啟隱藏檔案
要麼單獨使用ios_base::in
要麼不能有ios_base::trunc
=========================================================
ifstream與fstream也沒有太大不同,
只是在你開啟時,不管有沒加ios_base::in,反正都會或一次(“_Mode | ios_base::in”)由前文結論可推斷,以下兩種情況能開啟檔案,其餘都不能:
ifstream ifs("aaa.txt")
ifstream ofs("aaa.txt", ios_base::out)  3 測試讀取普通檔案=========================================================fstream fs("aaa.txt", ios_base::in)      能
fstream fs("aaa.txt", ios_base::out)      能
fstream fs("aaa.txt", ios_base::trunc)      不能
fstream fs("aaa.txt"); //等同於下行
fstream fs("aaa.txt", ios_base::in | ios_base::out)    能
fstream fs("aaa.txt", ios_base::in | ios_base::trunc);   不能
fstream fs("aaa.txt", ios_base::out | ios_base::trunc);   能
fstream fs("aaa.txt", ios_base::in | ios_base::out | ios_base::trunc); 能以上總結:
fstream開啟普通檔案
用ios_base::trunc時必須同時有ios_base::out
=========================================================
ifstream與fstream也沒有太大不同,
只是在你開啟時,不管有沒加ios_base::in,反正都會或一次(“_Mode | ios_base::in”)由前文結論可推斷,以下一種情況不能開啟檔案,其餘都能:
ifstream ofs("aaa.txt", ios_base::trunc)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.