版权声明:本文为博主原创文章,未经博主允许,不得转载。

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+

新建

结尾

 任意位置读取 

 只能尾部写入 

-

 

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

 

posted @ 2016-02-26 12:52  康建伟  阅读(26047)  评论(1编辑  收藏  举报

版权声明:本文为博主原创文章,未经博主允许,不得转载。