文档介绍:,打开文件主要是在系统中分配一些资源用于保存该文件的状态信息,并获取文件的指针,以后调用其它函数对文件进行读写操作时都要提供这个指针。 FILE*fopen(constchar*filename,constchar*modes);,应该关闭文件,进而释放文件所占用的系统资源。文件关闭之后,文件指针将不再有效,用户也就无法通过该指针操作文件。 intfclose(FILE*fp);,这项工作可以由fflush或fpurge函数完成。 intfflush(FILE*fp); intfpurge(FILE*fp);,缓冲区的类型有下面三种:全缓冲:缓冲区被填满后才执行输入输出操作,将数据写入到磁盘文件或输出到用户终端;行缓冲:缓冲区中填入换行符时,执行输入输出操作;无缓冲:不对数据进行缓存,标准错误输出stderr一般就是无缓冲的,这可以使错误信息尽快地显示出来。intsetvbuf(FILE*fp,char*buf,intmode,size_tsize);_IOFBF、_IOLBF、、字符串(行)输入输出以及数据块输入输出,下面分别进行介绍。,可以使用fgetc函数和fputc函数。 intfgetc(FILE*fp); intfputc(intc,FILE*fp); intgetchar(); intfgetc(stdin); intputchar(intc); intfputc(c,stdout); voidrewind(FILE*fp);fseek函数 intfseek(FILE*fp,longoffset,intwhence); fseek(fp,0,SEEK_SET); fseek(fp,0,SEEK_END);ftell函数 longftell(FILE*fp);,除了可以利用fgetc函数和fputc函数以字节为单位进行外,还可以使用fgets函数和fputs函数以字符串(行)为单位进行。 char*fgets(char*s,intn,FILE*fp); intfputs(constchar*s,FILE*fp);,也可以以数据块为单位进行。所谓数据块,是指一串固定长度的字节,例如一个整型数据、一个结构体,或一个固定长度的数组等。 size_tfread(void*ptr,size_tsize,size_tn,FILE*fp); size_tfwrite(void*ptr,size_tsize,size_tn,FILE*fp);