第十一章:文件操作04
让编程改变世界
Change the world by program
格式化读写函数: fprintf()和fscanf()
函数调用:
fprintf ( 文件指针,格式字符串,输出表列);
fscanf ( 文件指针,格式字符串,输入表列);
函数功能:
从磁盘文件中按格式读入或输出字符。fprintf(fp, "%d,%6.2f", i, t);
fscanf (fp, "%d,%f", &i, &t);
顺序读写和随机读写
顺序读写:
位置指针按字节位置顺序移动。随机读写:
读写完上一个字符(字节)后,并不一定要读写其后续的字符(字节),而可以读些文件中任意位置上所需要的字符(字节)。fseek函数(一般用于二进制文件)
函数功能:
改变文件的位置指针函数调用形式:
fseek(文件类型指针,位移量,起始点)起始点:
文件开头 SEEK_SET 0 文件当前位置 SEEK_CUR 1 文件末尾 SEEK_END 2 位移量:以起始点为基点,向前移动的字节数。fseek函数应用举例
fseek(fp,100L,0); 将位置指针移到离文件头100个字节处 fseek(fp,50L,1); 将位置指针移到离当前位置50个字节处 fseek(fp,50L,2); 将位置指针从文件末尾处向后退10个字节 fseek(fp,i*sizeof(struct stu),0); 将位置指针移到离文件头i*sizeof(struct stu)这个距离处。举例论证
在学生文件stu_list中读出第二个学生的数据。ftell函数
函数作用:
得到流式文件中的当前位置,用相对于文件开头的位移量来表示。返回值:
返回当前位置,出错时返回-1L。应用举例:
i = ftell(fp);
if(i == -1L)
printf(“errorn”);
出错的检测
ferror函数
调用形式:
ferror(fp);
返回值:
返回0,表示未出错;返回非0,表示出错。注意:
在调用一个输入输出函数后立即检查ferror函 数的值,否则信息会丢失。在执行fopen函数 时,ferror函数的初始值自动置为0。clearerr函数
调用形式:
clearerr(fp);