C语言文件打开模式浅析


    在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图:



打开模式

 只可以读 

 只可以写 

读写兼备

文本模式

r

w

a

r+

w+

a+

二进制模式

rb

wb

ab

 rb+ (r+b) 

 wb+ (w+b) 

 ab+ (a+b) 



二进制模式与文本模式操作相似,只不过是以二进制流的形式读写而已,下面以文本模式为例分析:


"r" 模式:

“只读”操作,即只能从文件读取内容。

打开失败。

开头。

不会清空文件内原有内容。

任意位置读取内容。

"w" 模式:

“只写”操作,即只能向文件写入内容。

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

2.3 成功打开文件时,文件指针位于文件开头。

2.4 打开文件后,会清空文件内原有的内容。

2.5 可向文件中任意位置写入内容,且进行写入操作时,会覆盖原有位置的内容。

"a" 模式:

“追加”操作,即只能向文件写入内容。

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

3.3 成功打开文件时,文件指针位于文件结尾。

3.4 打开文件后,不会清空文件内原有内容。

3.5 只能向文件末尾追加(写)内容。

"r+"模式:

“读写”操作,即既可读取,又可写入。

4.2 若欲操作的文件不存在,则打开失败。

4.3 成功打开文件时,文件指针位于文件开头。

4.4 打开文件后,不会清空文件内原有内容。

4.5 无论是读取内容还是写入内容,都可在文件中任意位置进行,且进行写入操作时,会覆盖原有位置的内容。

"w+"模式:

“读写”操作,即既可读取,又可写入。

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

5.3 成功打开文件时,文件指针位于文件开头。

5.4 打开文件后,会清空文件内原有的内容。

5.5 无论是读取内容还是写入内容,都可在文件中任意位置进行,且进行写入操作时,会覆盖原有位置的内容。

"a+"模式:

6.1 打开文件进行“读写”操作,即既可读取,又可写入。

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

6.3 成功打开文件时,文件指针位于文件结尾。

6.4 打开文件后,不会清空文件内原有内容。

      6.5 读取内容时,可以在任意位置进行,但写入内容时,只会追加在文件尾部。


    附表格加强记忆:


 打开模式 

 简述 

 若欲操作的 

 文件不存在 

 成功打开文件后 

文件指针位置

 是否清空 

 原有内容 

读取位置

写入位置

r

只读

打开失败

开头

 任意位置读取 

不可写入

-

w

只写

新建

开头

不可读取

 任意位置写入 

 写入时会覆盖原有位置内容 

a

新建

结尾

不可读取

尾部写入 

-

r+

读写

打开失败

开头

 任意位置读取 

 任意位置写入 

 写入时会覆盖原有位置内容 

w+

新建

开头

 任意位置读取 

 任意位置写入 

 写入时会覆盖原有位置内容 

a+

新建

结尾

 任意位置读取 

尾部写入 

-




    不同的打开模式对应不同的操作方式,使用时需仔细规划。