C語言中文件打開模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)淺析


C語言文件打開模式淺析

       在C語言的文件操作語法中,打開文件文件有以下12種模式,如下圖: 

打開模式

 只可以讀 

 只可以寫 

讀寫兼備

文本模式

r

w

a

r+

w+

a+

二進制模式

rb

wb

ab

 rb+ (r+b) 

 wb+ (w+b) 

 ab+ (a+b) 

 

       其中,二進制模式文本模式操作相似,只不過是以二進制流的形式讀寫而已,下面以文本模式為例分析:

       1."r" 模式

              1.1 打開文件進行“只讀”操作,即只能從文件讀取內容。

              1.2 若欲操作的文件不存在,則打開失敗

              1.3 成功打開文件時,文件指針位於文件開頭

              1.4 打開文件后,不會清空文件內原有內容。

              1.5 可從文件中任意位置讀取內容。

       2."w" 模式

              2.1 打開文件進行“只寫”操作,即只能向文件寫入內容。

              2.2 若欲操作的文件不存在,則新建文件

              2.3 成功打開文件時,文件指針位於文件開頭

              2.4 打開文件后,會清空文件內原有的內容。

              2.5 可向文件中任意位置寫入內容,且進行寫入操作時,會覆蓋原有位置的內容。

       3."a" 模式

              3.1 打開文件進行“追加”操作,即只能向文件寫入內容。

              3.2 若欲操作的文件不存在,則新建文件

              3.3 成功打開文件時,文件指針位於文件結尾

              3.4 打開文件后,不會清空文件內原有內容。

              3.5 只能向文件末尾追加(寫)內容。

       4."r+"模式

              4.1 打開文件進行“讀寫”操作,即既可讀取,又可寫入。

              4.2 若欲操作的文件不存在,則打開失敗

              4.3 成功打開文件時,文件指針位於文件開頭

              4.4 打開文件后,不會清空文件內原有內容。

              4.5 無論是讀取內容還是寫入內容,都可在文件中任意位置進行,且進行寫入操作時,會覆蓋原有位置的內容。

       5."w+"模式

              5.1 打開文件進行“讀寫”操作,即既可讀取,又可寫入。

              5.2 若欲操作的文件不存在,則新建文件

              5.3 成功打開文件時,文件指針位於文件開頭

              5.4 打開文件后,會清空文件內原有的內容。

              5.5 無論是讀取內容還是寫入內容,都可在文件中任意位置進行,且進行寫入操作時,會覆蓋原有位置的內容。

       6."a+"模式

              6.1 打開文件進行“讀寫”操作,即既可讀取,又可寫入。

              6.2 若欲操作的文件不存在,則新建文件

              6.3 成功打開文件時,文件指針位於文件結尾

              6.4 打開文件后,不會清空文件內原有內容。

              6.5 讀取內容時,可以在任意位置進行,但寫入內容時,只會追加在文件尾部。

 

       附表格加強記憶:

 

 打開模式 

 簡述 

 若欲操作的 

 文件不存在 

 成功打開文件后 

文件指針位置

 是否清空 

 原有內容 

讀取位置

寫入位置

r

只讀

打開失敗

開頭

 任意位置讀取 

不可寫入

-

w

只寫

新建

開頭

不可讀取

 任意位置寫入 

 寫入時會覆蓋原有位置內容 

a

新建

結尾

不可讀取

 只能尾部寫入 

-

r+

讀寫

打開失敗

開頭

 任意位置讀取 

 任意位置寫入 

 寫入時會覆蓋原有位置內容 

w+

新建

開頭

 任意位置讀取 

 任意位置寫入 

 寫入時會覆蓋原有位置內容 

a+

新建

結尾

 任意位置讀取 

 只能尾部寫入 

-

 

       不同的打開模式對應不同的操作方式,使用時需仔細規划。

 


免責聲明!

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



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