C語言文件打開模式淺析spa
在C語言的文件操做語法中,打開文件文件有如下12種模式,以下圖: 指針
打開模式ci |
只能夠讀 table |
只能夠寫 語法 |
讀寫兼備二進制 |
|||
文本模式文件讀取 |
rtab |
w語言 |
adi |
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+ |
新建 |
結尾 |
否 |
任意位置讀取 |
只能尾部寫入 |
- |
不一樣的打開模式對應不一樣的操做方式,使用時需仔細規劃。