文档详情

《C语言程序设计》课件——61文件的定位与随机读写.pptx

发布:2025-03-29约1.57千字共5页下载文档
文本预览下载声明

12.4随机读写数据文件12.4.1读写位置定位

12.4.2随机读写举例

12.4.1读写位置定位12.4文件的随机读写读写位置标记:打开文件后,位置标记为0。读取第1个字符,位置标记为1;读取第2个字符,位置标记为2;依此类推,直至文件结束标志。随机读写文件:移动文件位置标记,读写任意位置的数据。ABCDEFGHIJEOF12345678910位置标记文件开头位置标记中间位置位置标记文件结尾

1.fseek函数调用形式:fseek(文件指针,位移量,起始点)函数功能:移动位置标记,随机读写数据。12.4文件的随机读写起始位置名字数字文件开始SEEK_SET0当前位置SEEK_CUR1文件末尾SEEK_END2从文件开头向前移动100个字节:fseek(fp,100,0)从当前位置向前移动100个字节:fseek(fp,100,1)从文件末尾向后移动100个字节:fseek(fp,-100,2)位置标记指向文件开头:fseek(fp,0,0)位置标记指向文件结尾:fseek(fp,0,2)

2.rewind函数调用形式:rewind(fp)函数功能:读写位置标记返回到文件开头。12.4文件的随机读写3.ftell函数调用形式:ftell(fp)函数功能:返回当前读写位置——相对于文件开头偏移的字节个数。fseek(fp,0,0);//位置标记指向文件开头printf(%d\n,ftell(fp))://输出数字0fseek(fp,0,2);//位置标记指向文件结尾printf(%d\n,ftell(fp))://输出文件长度

12.4文件的随机读写[例12-10]按例12-8建立的stud.rec文件,从任意指定位置输出一个学生的记录。12.4.2随机读写举例#inclidestdio.hstruct{charname[20];longnum;floatscore;}stud;intmain(){FILE*fp;intrec_no;longoffset;if((fp=fopen(stud.rec,rb))==NULL{printf(不能打开stud.rec文件);exit(0);}printf(键入你要查找的档案号:);scanf(%d,rec_no);offset=(rec_no-1)*sizeof(stud);if(fseek(fp,offset,0)!=0){printf(文件定位失败。);exit(0);}fread(stud,sizeof(stud),1,fp);printf(\n姓名:%s\n,stud.name);printf(学号:%ld\n,stud.num);printf(分数:%6.2f\n,stud.score);fclose(fp);return0;}运行结果如下:键入你要查找的档案号:2姓名:LingLi学号:89105分数:78.00键入你要查找的档案号:1姓名:WanLi学号:89101分数:89.50

显示全部
相似文档