fstream文件打開模式


fstream:
對於文件的操作很久兩年前就開始使用了,但是僅僅為了達到滿足自己需求的目的,就是要么是寫,要么是讀。從來沒有對其進行詳細的了解。自己也曾
經想過花一點時間去總結一下,這個東西到底應該怎么用。但是由於:自己的本性懶,所以一直拖到今天,擠出一點時間把這個問題徹底解決一下。還有一點,讀寫不要同時用否則會出問題。相用的話,需要先seekg或者 seekp;

默認打開模式是共享的。


ios::in 為輸入打開文件。文件不存在打開失敗,文件存在則打開
ios::out:為輸入打開文件。文件不存在則創建在打開,文件存在則清空
ios::nocreate 文件存在時候,不起作用。當文件不存在時候,強制文件不存在也不創建,這個項應該是針對ios::out;
ios::noreplace 不覆蓋文件,所以打開文件時如果文件存在失敗。當文件不存在時,此參數無效。文件存在時,這個選項對於ios::in無效,因為它沒有覆蓋的意圖。但是對於ios::out則是有作用的,當文件存在時打開失敗。
ios::binary文件默認是以文本形式打開,當指定次模式,以二進制打開。
ios::trunc如果文件不存在,則無效,當文件存在時,首先刪除里面的內容。
ios::app 所有輸出附加在文件末尾,讀操作與寫操作共享指針(位置指針),具有讀文件的特性,也就是說在與iso::out組合使用的時候,不清空文件
ios::ate 初始位置:文件尾




假想文件操作(假設文件存在):
文件末尾添加:iso::out|iso::app  或者iso::out|iso::in|ios::ate mark:iso::out|iso::ate會清空里面的數據
清空文件添加:iso::out
讀取:iso::in
讀寫文件:iso::out|iso::in
讀寫前清空:iso::out|iso::in|iso::trunc


假想文件操作(假設文件不存在)
不可能進行純粹的讀操作
向文件里寫東西:ios::out
向文件里讀寫:iso::in|iso::out


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM