一、文件的打开与关闭 1、fopen 调用方式: FILE *fp; fp=fopen(文件名,使用文件方式); 说明: (1)、使用文件方式主要有:只读(r)、只写(w)、追加(a),还有配合"+"使用的方式,如r+、w+、a+; (2)、默认打开的文件为文本文件,用't'表示,可以省略。如果打开二进制的文件,则使用'b'。例如:r、rt、rb等。 (3)、如果不能实现打开的任务,则函数返回NULL值。 2、fclose 调用方式: FILE *fp; fclose(fp); 说明: (1)、打开文件后,必须要养成关闭文件的好习惯。 (2)、如果关闭文件出错,函数返回非零值,否则返回0.可以用ferror函数检查是否出错。 二、文件的读写 1、fputc 调用方式: FILE *fp; char c; fputc(c,fp); 说明: (1)、fputc向文件写入一个字符。 (2)、输出成功则返回值就是输出的字符,如果失败则返回一个EOF。 2、fgetc 调用方式: FILE *fp; char c; c=fgetc(fp); 说明: (1)、fgetc向文件读取一个字符。 (2)、函数返回读取的字符,如果遇到文件结尾,则返回EOF。 (3)、建议使用feof函数来判断是否文件结束。如果文件结束,函数feof返回值为1,否则为0。 3、fread 调用方式: fread(buffer,size,count,fp); 说明: (1)、buffer:是一个指针。对于fread来说明,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。 (2)、size:要读写的字节数。可以使用sizeof来获得字节长度。 (3)、count:要进行读写多少个size字的数据项。 (4)、fp:文件指针。 (5)、如果fread或fwrite调用成功,则函数返回值为count的值。 4、fwrite 见fread说明。 5、fprintf和fscanf 调用方式: fprintf(文件指针,格式字符串,输出列表); fscanf(文件指针,格式字符串,输入列表); 说明: (1)、在内存与磁盘频繁交换数据的情况下,建议采用fread和fwrite实现。 三、文件的定位 1、rewind 调用方式: FILE *fp; rewind(fp); 说明: (1)、rewind使文件的位置指针重新定位于文件开头。 2、fseek 调用方式: fseek(文件类型指针,位移量,起始点); 说明: (1)、起始点用0、1、2代替,分别表示文件开始、文件当前位置、文件末尾。 (2)、位移量指起始点为基点,向前移动的字节数。一般为long型。 (3)、fseek常用二进制文件,可以实现随机读写。 3、ftell 调用方式: FILE *fp; long i; i=ftell(fp); 说明: (1)、函数返回文件当前位置,如果调用出错则返回值为-1L。 四、出错的检测 1、ferror 调用方式: FILE *fp; ferror(fp); 说明: (1)、返回值为0,表示未出错,返回值为1,表示出错。 (2)、同一个文件每一次调用输入输出函数,均产生一个新 的ferror函数值。 (3)、在执行fopen函数时,ferror函数的初始值自动置为0。 2、clearerr 调用方式: FILE *fp; clearerr(fp); 说明: (1):使文件错误标志和文件结束标志为0. 按照标准的介绍: char *fgets(char *restrict s, int n, FILE *restrict stream); 最多从stream里面读入 n-1 个字符,并存入到 s 数组里面,但是当读到换行符或eof时会提前停止,并在 s 里面最后一个被读入的字符后面添加 '/0',当读取错误返回空指针。