您的位置:首页 > 编程语言 > C语言/C++

C语言:文件函数 fopen(),fclose(),fwrite(),fread()

2017-10-26 16:25 417 查看
文件打开函数:fopen
fopen函数是在当前目录下打开一个文件,其调用的一般形式为:

文件指针名=fopen(文件名,使用文件方式); 
ex:
FILE *fr = fopen(srcpath,"r");

FILE *fw = fopen(despath,"w");

FILE *fr =fopen("c:\\1.test","rb");
其意义是打开C驱动器磁盘的根目录下的文件1.test,两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。

在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。
断言:assert(fw != NULL)

关闭文件函数:fclose 

可以把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针和有关的缓冲区。
与 FILE *fp = fopen("", "");相对应。

返回值:如果流成功关闭,fclose 返回 0,否则返回EOF(-1).

文件写入函数:fwrite

fwrite() 是 C 语言标准库中的一个文件处理函数,功能是向指定的文件中写入若干数据块,如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作,不局限于文本文件。

函数原型:

fwrite(const void* buffer, size_t size, size_t count, FILE* stream);   
-- buffer:指向数据块的指针  
-- size:每个数据的大小,单位为Byte(例如:sizeof(int)就是4)  
-- count:数据个数  
-- stream:文件指针

注意:返回值随着调用格式的不同而不同:

(1) 调用格式:fwrite(buf,sizeof(buf),1,fp);成功写入返回值为1(即count)

(2)调用格式:fwrite(buf,1,sizeof(buf),fp);成功写入则返回实际写入的数据个数(单位为Byte)

文件读取函数:fread

函数原型: fread(void *buffer,size_t size,size_t count,FILE *stream);

返回值:读取的元素的个数

使用文件的方式共有12种,下面给出了它们的符号和意义:

1."r" = "rt"
打开一个文本文件,文件必须存在,只允许读

2."r+" = "rt+"
打开一个文本文件,文件必须存在,允许读写

3."rb"
打开一个二进制文件,文件必须存在,只允许读

4.“rb+”
打开一个二进制文件,文件必须存在,允许读写

5."w" = “wt”
新建一个文本文件,已存在的文件将被删除,只允许写

6."w+" = "wt+"
新建一个文本文件,已存在的文件将被删除,允许读写

7.“wb”
新建一个二进制文件,已存在的文件将被删除,只允许写

8.“wb+”
新建一个二进制文件,已存在的文件将被删除,允许读写

9."a" = "at"
打开或新建一个文本文件,只允许在文件末尾追写

10."a+" = "at+"
打开或新建一个文本文件,可以读,但只允许在文件末尾追写

11.“ab”
打开或新建一个二进制文件,只允许在文件末尾追写

12.“ab+”
打开或新建一个二进制文件,可以读,但只允许在文件末尾追写

文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:

r(read): 只读
w(write): 只写
a(append): 追加
t(text): 文本文件,可省略不写
b(binary): 二进制文件
+: 读和写

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐