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+ |
新建 |
結尾 |
否 |
任意位置讀取 |
只能尾部寫入 |
- |
不同的開啟模式對應不同的操作方式,使用時需仔細規劃。