第10讲 对文件的输入输出.ppt

  1. 1、本文档共106页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.4.1 文件位置标记及其定位 2. 文件位置标记的定位 可以强制使文件标记指向指定的位置 可以用以下函数实现: (2) 用fseek函数改变文件标记 fseek函数的调用形式为: fseek(文件类型指针,位移量,起始点)  起始点0代表“文件开始位置”,1为“当前位置”,2为“文件末尾位置” C标准指定的名字 起始点 名 字 用数字代表 文件开始位置 SEEK_SET 0 文件当前位置 SEEK_CUR 1 文件末尾位置 SEEK_END 2 位移量指以起始点为基点,向前移动的字节数。位移量应是long型数据(在数字的末尾加一个字母L)。 fseek函数一般用于二进制文件。下面是fseek函数调用的几个例子: fseek (fp,100L,0); 将位置指针移到离文件头100个字节处 fseek (fp,50L,1); 将位置指针移到离当前位置50个字节处 fseek (fp,-10L,2); 将位置指针从文件末尾处向后退10个字节 10.4.1 文件位置标记及其定位 2. 文件位置标记的定位 可以强制使文件位置标记指向指定的位置 可以用以下函数实现: (3) 用ftell函数测定文件位置标记的当前位置 ftell函数的作用是得到流式文件中文件位置标记的当前位置。 由于文件中的文件位置标记经常移动,人们往往不容易知道其当前位置,所以常用ftell函数得到当前位置,用相对于文件开头的位移量来表示。如果调用函数时出错(如不存在fp指向的文件),ftell函数返回值为-1L。例如: i=ftell(fp); if(i==-1L) printf(“error\n”); 10.4.2 随机读写 例10.6 在磁盘文件上存有10个学生的数据。要求将第1,3,5,7,9个学生数据输入计算机,并在屏幕上显示出来。 要求:从例10.4中建立的“stu.dat”中读入数据 10.4.2 随机读写 解题思路: 按二进制只读方式打开文件 将文件位置标记指向文件的开头,读入一个学生的信息,并把它显示在屏幕上 再将文件标记指向文件中第3,5,7,9个学生的数据区的开头,读入相应学生的信息,并把它显示在屏幕上 关闭文件 #includestdio.h #include stdlib.h struct St { char name[10]; int num; int age; char addr[15]; }stud[10]; int main() { int i; FILE *fp; if((fp=fopen(“stu.dat”,“rb”))==NULL) { printf(can not open file\n); exit(0); } for(i=0;i10;i+=2) { fseek(fp,i*sizeof(struct St),0); fread(stud[i], sizeof(struct St),1,fp); printf(“%-10s %4d %4d %-15s\n”, stud[i].name,stud[i].num, stud[i].age,stud[i].addr); } fclose(fp); return 0; } 10.5 文件读写的出错检测 1.ferror函数 ferror函数的一般调用形式为 ferror(fp);  如果返回值为0,表示未出错,否则表示出错 每次调用输入输出函数,都产生新的ferror函数值,因此调用输入输出函数后立即检查 调用fopen时,ferror的初始值自动置为0 10.5 文件读写的出错检测 2. clearerr函数 作用是使文件错误标志和文件结束标志置为0 调用一个输入输出函数时出现错误(ferror值为非零值),立即调用clearerr(fp),使ferror(fp)值变0,以便再进行下一次检测 只要出现文件读写错误标志,它就一直保留,直到对同一文件调用clearerr函数或rewind函数,或任何其他一个输入输出函数 小结: 教学要求: 理解文件的概念及特点、文本文件与二进制文件的区别与适用场合,掌握文件的打开、读写和关闭操作 。 主要内容: (1)基本的输入输出 :输入输出的有关概念、实现机制。 (2)文件的概念与类型 :文件的概念,文本文件与二进制文件的区别 。 (3)文件的操作:文件的打开、读写、关闭操作的实现方式。 例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档