摘要:
二进制文件,文件读写
问题:
这里主要介绍对二进制文件使用fread和fwrite进行读写。
解决方案:
头文件:stdio.h
读写步骤:
1.打开文件FILE* f=fopen(char*filename,const int model)
说明:model是对文件的打开方式由r,w,a,t,b,+,六个字符拼成,含意是:
r(read)读
w(write)写
a(append)追加
t(text)文本文件,可省略不写
b(banary) 二进制文件
+ 读和写
注意:
a.凡用"r"打开一个文件时,该文件必须存在
b.用"w"打开的文件只能向该文件写入,若打开的文件不存在,则以指定的文件名
建立该文件,若打开的文件已经存在,则将删去该文件,重建一个新文件。
c.若要向一个已存在文件追加新的信息,只能用"a"方式打开文件,但该文件必须存在
d.在打一个文件时,如果出错,fopen将返回一个空指针值NULL,否则返回文件句柄
e.文件一旦使用完毕,应用关闭文件的函数fclose把文件关闭
3.写文件fwrite(void* buffer,int struct_size,int size,FILE *f)
说明:
buffer,struct_size,size,f同fread
4.移动文件读写指针fseek(FILE *f,long offset,int fromwhere)
说明:
offset:指定相对fromwhere的偏移位置,offset可以为负值,但要注意文件的读写指针是否越界。
SEEK_SET:指定在文件的开头
SEEK_CUR:指定在文件的当前位置
SEEK_END:指定在文件末尾
5.获取文件读写指针的当前位置long length=ftell(FILE *f)
说明:
length文件开头到当前读写指针的偏移
6.关闭文件fclose(FILE *f)
二进制文件,文件读写
问题:
这里主要介绍对二进制文件使用fread和fwrite进行读写。
解决方案:
头文件:stdio.h
读写步骤:
1.打开文件FILE* f=fopen(char*filename,const int model)
说明:model是对文件的打开方式由r,w,a,t,b,+,六个字符拼成,含意是:
r(read)读
w(write)写
a(append)追加
t(text)文本文件,可省略不写
b(banary) 二进制文件
+ 读和写
注意:
a.凡用"r"打开一个文件时,该文件必须存在
b.用"w"打开的文件只能向该文件写入,若打开的文件不存在,则以指定的文件名
建立该文件,若打开的文件已经存在,则将删去该文件,重建一个新文件。
c.若要向一个已存在文件追加新的信息,只能用"a"方式打开文件,但该文件必须存在
d.在打一个文件时,如果出错,fopen将返回一个空指针值NULL,否则返回文件句柄
e.文件一旦使用完毕,应用关闭文件的函数fclose把文件关闭
2.读文件long length=fread(void* buffer,int struct_size,int size,FILE *f)
说明:
buffer用来存放读取数据的缓冲
struct_size指定一个结构的字节大小,如sizeof(char),sizeof(struct)
size读取多少个指定的结构
length返回实际读取了多少个结构
注意:buffer的大小不能小于sizeof(struct_size)*size,否则就会出错
说明:
buffer用来存放读取数据的缓冲
struct_size指定一个结构的字节大小,如sizeof(char),sizeof(struct)
size读取多少个指定的结构
length返回实际读取了多少个结构
注意:buffer的大小不能小于sizeof(struct_size)*size,否则就会出错
3.写文件fwrite(void* buffer,int struct_size,int size,FILE *f)
说明:
buffer,struct_size,size,f同fread
4.移动文件读写指针fseek(FILE *f,long offset,int fromwhere)
说明:
offset:指定相对fromwhere的偏移位置,offset可以为负值,但要注意文件的读写指针是否越界。
SEEK_SET:指定在文件的开头
SEEK_CUR:指定在文件的当前位置
SEEK_END:指定在文件末尾
5.获取文件读写指针的当前位置long length=ftell(FILE *f)
说明:
length文件开头到当前读写指针的偏移
6.关闭文件fclose(FILE *f)
浙公网安备 33010602011771号