不喜欢说一些开场白啊啥的,直接从函数介绍开始
文件操作基础的四个函数: fopen() fclose() fseek() ftell
-
fopen()
fopen(const char*a,char **b) a:文件路径+文件名称 比如:”F:\mydata“
b:文件的打开方式有以下几种
比如: FILE* fp1; fp1 = fopen(“F:\mydeta.txt”,“r”);
//以读的方式打开mydata.txt文件
注:C语言中,’\’+字母 为转义字符,因此在输入文件路径时,需要将’\‘写为’\\’ -
fclose(FILE* a)
关闭数据文件,在使用完一个文件指针后关闭,否则会将缓冲区中的数据丢失,还有可能会误用该指针。
注:以写的方式打开文件时,写入的数据会保存在缓冲区中,直到缓冲区满,在将缓冲区中的数据写入到磁盘中。(为了提高写入效率) -
fseek(FILE* a,long b,int c)
不管是读文件还是写文件,每个都会有一个文件读写位置标记(类似于word中的光标),fseek函数的作用就是,将a所指向的文件的位置标记从c位置开始移动b个单位
有三个宏
SEEK_SET 文件起始处
SEEK_CUT 文件位置标记的当前位置
SEEK_END 文件末尾
举个例子
fseek(fp,0L,SEEK_END);将fp所指向文件的位置标记移动到文件末尾 -
ftell(FILE*a)
返回该文件指针所指向的文件位置标记的当前位置,出错返回-1
用fseek函数和ftell函数求一个文件的大小
int main()
{
fp3 = fopen("F:\\QQSpeed2.00_Beta158_Build26_20190510.7z.001","r");
fseek(fp3,0L,SEEK_END);
printf("%d\n",ftell(fp3));
return 0;
}
这个文件是我玩的一个游戏中的文件,对比一下,一个字节都不差