C语言-文件
一、文件的打开
文件分类:程序文件和数据文件
文件名:文件路径 + 文件名主干 + 后缀名
1、文件指针
每个被使用文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(文件名、路径、大小位置等)。这些信息保存在一个结构体变量中,该结构体是有系统声明的,取名FILE
//stdio.h
typedef struct _iobuf
{char* _ptr; //文件输入的下一个位置int _cnt; //当前缓冲区的相对位置char* _base; //文件初始位置int _flag; //文件标志int _file; //文件有效性int _charbuf; //缓冲区是否可读取int _bufsiz; //缓冲区字节数char* _tmpfname; //临时文件名
} FILE;
2、文件打开与关闭
①、fopen:打开文件
FILE* fopen(const char* filename,const char* mode);
//filename : 文件名
//mode: 文件的打开形式:'r','w','a':追加
//打开失败,返回NULL
②、fclose:关闭文件
int fclose ( FILE * stream );
二、文件的读写
1、文件的顺序读写
2、文件的随机读写
①、fseek:读取文件指定位置的数据
int fseek(FILE* stream,long int offset, int origin);
//stream:流
//offset:偏移
//origin:起始地址,origin取值:SEEK_SET,起始位置,SEEK_CUR,当前位置,SEEK_END,末尾位置
②、ftell:计算当前文件指针距离起始位置的偏移量
int ftell(FILE* stream);
③、rewind:回到文件的起始位置
void rewind(FILE* stream);
三、二进制文件与文本文件
四、文件读取结束的判定
1、feof:判定文件读取结束失败的原因:是文件读取失败结束还是文件读取失败结束
fgetc:EOF,文件读取结束
fgets:NULL,文件读取结束
fread:返回值是否小于实际要读的个数,文件读取结束
五、文件缓冲区