C语言中 以追加只写方式打开文本文件,C语言文件操作

  • Post author:
  • Post category:其他


语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数。fopen函数的原型为

FILE* fopen(const char *path,const char *mode)

其中path为文件路径,mode为打开方式

1)对于文件路径,只需注意若未明确给出绝对路径,则默认该文件在工程的目录下。若需给出绝对路径,则注意转义字符’\\’,比如有文件test.txt存放在C盘根目录下,则文件路径参数值应为C:\\\\test.txt。

2)对于mode,主要由r,w,a,+,b,t六个字符组合而成。

r:只读方式,文件必须存在

w:只写方式,若文件存在,则原有内容会被清除;若文件不存在,则会建立文件

a:追加方式打开只写文件,只允许进行写操作,若文件存在,则添加的内容放在文件末尾;若不存在,则建立文件

+:可读可写

b:以二进制方式打开文件

t:以文本方式打开文件(默认方式下以文本方式打开文件)

下面是常见的组合:

r:      以只读的方式打开文件,只允许读,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部

r+:    以可读可写的方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部

rb+:  以可读可写、二进制方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部

rt+:  以可读可写、文本方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部

w:    以只写的方式打开文件,只允许写,若文件存在,文件中原有内容会被清除;若文件不存在,则创建文件,打开成功后返回文件指针,位置指针指向文件头部

w+:  以读写的方式打开文件,允许读写,若文件存在,文件中原有内容会被清除;若文件不存在,则创建文件,打开成功后返回文件指针,位置指针指向文件头部

a:     以追加、只写的方式打开文件,只允许写。若文件存在,则追加的内容添加在文件末尾,若文件不存在,则创建文件。打开成功后返回文件指针,位置指针指向文件头部(注意很多书上或资料上讲述追加方式打开成功后位置指针指向文件末尾是错误的)

a+:   以追加、可读写的方式打开文件,允许读写。若进行读操作,则从头开始读;若进行写操作,则将内容添加在末尾。若文件不存在,则创建文件。打开成功后返回文件指针,位置指针指向文件头部。

其他方式类似。

下面讨论一下以二进制方式和文本方式打开文件有什么区别。

其实这两种方式打开文件并没有太大的区别,仅仅只有一点区别就是在处理某些特殊字符的时候。

以文本方式打开文件,若将数据写入文件,如果遇到换行符’\\n'(ASII

值为10,0A),