打开方式的取值和意义如下:
◆"r":该打开方式为只读方式
◆ "w":该打开方式为只写方式
◆ "a":该打开方式为尾加方式
◆ "r+":该打开方式为读/写方式,相当于"r"与"w"方式的结合。
◆ "w+":该打开方式为读/写方式,相当于"r"与"w"方式的结合。
◆ "a+":该打开方式为读/尾加方式
◆"rb":该打开方式为只读方式
◆ "wb":该打开方式为只写方式
◆ "ab":该打开方式为尾加方式
◆ "rb+":该打开方式为读/写方式,相当于"rb"与"wb"方式的结合。
◆ "wb+":该打开方式为读/写方式,相当于"rb"与"wb"方式的结合。
◆ "ab+":该打开方式为读/尾加方式
打开文件:fopen( "文件路径",“使用文件方式” )。
关闭文件: fclose( 文件指针 )。
char fgetc(FILE *p);
函数读取参数p指向的文件。 fgetc函数返回一个字符。
处理读取结束:对于文本文件,如果读取位置到达文件末尾,fgetc函数返回一个结束标志EOF ; ANSI C提供了一个feof(FILE *p) 函数,当fgetc函数读取到文件末尾时,feof(FILE *p)函数返回1,否则返回0。
char * fgets(char str[],int n,FILE *p) ;
函数读取参数p指向的文件每次调用fgets(char str[],int n,FILE *p) 就顺序地读取n个字节,如此顺序地读取,直到读取的n个字节包含文件的结束标志。
fgets函数按文本方式读取文件,如果读取的n个字节中含有文件的结束标志EOF,fgets函数返回NULL。
char fputs(char str[],FILE *p);
向参数p指向的文件写入字符数组str。每次调用fputs函数就顺序地向文件中写入字符串str,如此顺序地写入,直到停止调用fputs函数或发生写入错误。
char fputs(char str[],int n,FILE *p);
将字符数组str中的n个字符写入到p所指向的文件。
int fwrite(void *addr,int size,int count,FILE *p);
函数向参数p指向的文件写入数据,参数的作用如下:
◆ p:指向文件的指针变量
◆ addr:指向数据在内存中的地址,addr指针为void型,可指向任何类型的变量。
◆ size:要写出的数据所占的字节个数。
◆ count:按顺序连续写出的数据的个数.
fwrite()函数返回成功写出的数据的个数。
只要不关闭文件,即不执行fclose(p);,那么每次调用fwrite函数,就顺序地向文件写入数据。
int fread(void *addr,int size,int count,FILE *p);
函数从参数p指向的文件中读入数据到程序中,参数的作用如下:
◆ p:指向文件的指针变量
◆ addr:在内存中的存放读入数据的起始地址,addr指针为void型,可指向任何类型的变量的地址。
◆ size:要读入的数据所占的字节个数。
◆ count:是按顺序连续读入的数据的个数。
fread()函数返回成功读入的数据的个数。
只要不关闭文件,即不执行fclose(p);,那么每次调用frread函数,就顺序地从文件读入数据。
int fseek(FILE *p,long offset,int origin);
fseek函数能随机移动读写位置。主要参数的意义如下:
◆ origin:确定移动的起始点。0表示文件开头位置,1表示当前位置,2表示结尾位置。
◆ offset:确定从起始点向文件的结尾方向或开头方向移动的位移量。正值表示向前移动,负值表示向后移动。
比如:
fseek(p,2,0);
首先将移动的起始点设置在文件的开始位置,然后从起始点向文件的结尾方向移动2个字节。因此 fseek(p,2,0);产生的效果就是将读写位置定位在距文件开头2个字节处。
long ftell(FILE *p);
ftell函数可以返回一个long型数值,该值是从文件开头到当前读写位置的全部的字节个数,当ftell返回的值等于文件的长度时,表示读写位置位于文件的末尾。
void rewind(FILE *p);
rewind函数能使读写位置回到文件的开头。