文件指针在程序中用来标识一个文件的,在打开文件的时候得到文件指针,文件指针就用来代表打开的文件,对文件进行读、写、关闭等操作时,对文件指针操作即可,将文件指针传给相应的读、写、关闭函数。
需要引入#include <stdio.h>
FILE * 文件指针变量名;
打开一个已经存在的文件,并返回这个文件的文件指针或者创建一个文件,并打开这个文件,并返回这个文件的文件指针。
FILE* fopen(char const* _FileName,char const* _Mode)
参数1 打开的文件名称、路径+名称
参数2 文件打开的方式
FILE* fp;
fp=fopen("filename.txt","r");
关闭fp所代表的文件,一个文件只能关闭一次,成功返回0,不成功返回非0,关闭之后就不能在对文件指针进行读写操作了。
int fclose(FILE* fp)
从文件中读取一个字节,将字节值返回。
注:EOF 是常量-1。
int fgetc(FILE* stream)
将c写入stream所代表的文件中。输出成功返回输出的字节值,输出失败返回EOF。
int fputc(int c,FILE* stream)
从stream所代表的文件中读取字符,在读取的时候碰到换行符或者到了文件末尾停止读取,或者读取了size-1个字节停止读取,在读取的内容后面会加\0,作为字符串的结尾。读取成功返回数组的首地址,即s,读取失败返回NULL。
char* fgets(char* s,int size, FILE* stream)
将s所指的字符串写到stream代表的文件中,成功返回写入的字节数,失败返回-1。
int fputs(char const* s, FILE* stream)
从stream所表示的文件中读取数据,每块是size个字节,共是nmemb块,存放到ptr指向的内存里,返回值,实际读取到的块数。
size_t fread(void* ptr,size_t size , size_t nmemb, FILE* stream)
将ptr指向的内存里的数据,向stream所代表的文件中写入数据,每块size个字节,共nmemb块,返回值,实际写入的块数。
size_t fwrite(void const* ptr, size_t size , size_t nmemb , FILE* stream)
复位读写位置,把文件内部的位置指针移动到文件首。
FILE* fp;
rewind(fp);
定位位置指针,移动文件流的读写位置,一般用于二进制文件。
int fseek(文件指针,偏移量,起始位置)
起始位置:
偏移量: 以起始点为基点,向前向后移动的字节数,整数向后偏移,负数向前偏移。
取得文件流目前的读写位置,返回当前读写位置,距离文件起始的字节数,出错返回-1。
FILE* fp;
long ftell(fp);