C文件操作
文件的打开和关闭
头函数:#include <stdio.h>
fopen
FILE* fopen(const char *path,const char *mode)
功能:打开文件并为文件创建缓冲区
path:目标文件路径
mode:-r,-w,-rw
返回值:
成功:返回文件指针file*(缓冲区首地址)
失败:返回null
fclose
int fclose(FILE* fp);
功能:关闭文件,释放缓冲区
fp:已经打开的文件指针
返回值:
成功:0
失败:EOF(-1)
fgetc
int fgetc(FILE* fp)
功能:从fp代表的文件中获取一个字符
fp:我们需要操作的文件的描述
返回值:
成功:返回读取到的字符
失败:文件末尾,返回EOF(-1)
fgets
char *fgets(char *buf,int size,FILE *fp);
功能:从fp代表的文件中获取size -1 个字符,放置在buf代表的内存中
返回值:
成功:返回buf
失败:文件末尾,返回null
fputc
原型:int fputc(int c,FILE* fp)
功能:向fp的文件中写入一个字符c
c:待写入的字符
fp:已打开的文件指针
返回值
成功:返回字符 c
失败:返回EOF(-1)
fputs
原型:int fputs(const char *buf,FILE *fp)
功能:向fp代表的文件中写入一个字符数组s
s:待写入的字符数组
fp:已打开的文件指针
返回值
成功:返回非负整数(>0)
失败:返回EOF(-1)
feof
原型:int feof(fp)
功能:在读fp指向的文件时判断是否遇到文件结束
fp:已打开的文件指针
返回值:
文件未读取完毕:返回0
文件读取完毕,返回 非0
fread
原型:size_t fread(void *ptr,size_t size,size_t count,FILE* fp)
功能:从fp代表的文件中以size为单位(一个数据块)读取count个数据 块存放在ptr内存中
参数:
ptr:内存空间首地址,用于存放读到数据(缓冲区)
size:数据块大小,以byte为 单位
count::待读取的数据块的个数
fp:已打开的文件指针
返回值:
成功 :返回实际写入的字节数
失败:返回<0
fwrite
原型:size_t fwrire(const void* ptr,size_t size,size_t count,FILE* fp)
功能:向fp代表的文件中以size 为 一个 数据块,写入count个数据块到fp
参数:
ptr:内存空间首地址,用于存放待写入的数据
size:数据块大小,以byte为单位
count:待写入 的 数据块个数
fp:已打开的文件指针
返回值:
成功:返回实际写入字节数
失败:写入完毕,返回<0
文件的随机读写
文件随机读写的核心操作:文件位置指针的定位
rewind
原型:void rewind(FILE* fp);
功能:将文件位置指针定位到文件开头
参数:
fp:已经打开的文件指针
无返回值
fseek
原型:int fseek(FILE* fp,long offset,int whence);
功能:将文件位置指针定位到指定位置
参数:
fp:已经打开的文件指针
offset:相对于参考位置的偏移位置
whence:参考位置
SEEK_SET或0:表示文件头
SEEK_CUP或1:表示当前读写的位置
SEEK_END或2:表示文件尾
返回值:
成功:0
失败:-1
ftell
原型:long ftell(FILE* fp);
功能:获取文件位置指针当前 位置
参数:
fp:已经打开的文件指针
返回值:
成功:文件位置指针当前位置
失败:-1