欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    (中职)C语言程序设计案例教程第8章文件(5-8节)教学课件().ppt

    • 资源ID:90568506       资源大小:1.64MB        全文页数:28页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    (中职)C语言程序设计案例教程第8章文件(5-8节)教学课件().ppt

    (中职)C语言程序设计案例教程第8章文件(5-8节)教学课件(工信版)目录/CONTENTS8.5文件的定位018.6文件操作的出错检测函数028.7文件操作应用8.8常见错误分析与解决0304本节要点:掌握文件定位函数的使用方法。掌握文件操作的出错检测函数掌握文件操作应用掌握编写简单的文件读写程序的方法018.5 文件的定位文件的定位在在C语言中,使用文件函语言中,使用文件函数数rewind()、fseek(fseek()和和ftellftell(),将文件位置指针定,将文件位置指针定位在所要读写的任意位位在所要读写的任意位置,这些函数皆包含在置,这些函数皆包含在头文件头文件“stdio.h”中。中。在对文件进行操作前,需先在对文件进行操作前,需先知道当前文件位置指针的位知道当前文件位置指针的位置,将文件位置指针定位在置,将文件位置指针定位在相应位置后再进行操作。所相应位置后再进行操作。所谓文件位置指针,是系统设谓文件位置指针,是系统设置的用来指向文件当前读写置的用来指向文件当前读写位置的指针,会随着文件的位置的指针,会随着文件的读写操作而移动,不需用户读写操作而移动,不需用户定义。定义。8.5.1 rewind()函数rewind()函数调用的一般形式为:rewind(文件指针);04rewind()函数设置文件位置为给定流stream的文件的开头。03rewind()函数原型为:void rewind(FILE*stream);02rewind()函数的功能是将文件位置指针移至文件起始处。01例如:rewind(fp);/设置文件位置指针为fp指向文件的开头。例:8-9:编写程序,将字符串中的数据写入文件“file5.txt”,再将文件“file5.txt”中的字符读入字符数组中,将字符数组输出到显示器。#includevoidmain()charstr=WeloveClanguage;FILE*fp;intch;intbuffer20;fp=fopen(file5.txt,w);fwrite(str,1,sizeof(str),fp);fclose(fp);/关闭文件if(fp=fopen(file5.txt,r)=NULL)printf(打开文件失败!n);exit(0);while(1)ch=fgetc(fp);if(feof(fp)break;printf(%c,ch);rewind(fp);printf(n);fread(buffer,1,strlen(buffer),fp);printf(%sn,buffer);fclose(fp);8.5.2 fseek()函数fseek()函数调用的一般格式为:fseek(fp,位移量,起始点);fseek()函数原型为:intfseek(FILE*stream,longintoffset,intwhence);fseek()函数设置流stream的文件位置为给定的偏移offset,参数offset意味着从给定的whence位置查找的字节数。0302019fseek()函数参数说明:“位移量”是指移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB时不会出错。当用常量表示位移量时,要求加后缀“L”。位移量为正,表示文件位置指针向文件尾方向移动;位移量为负,表示向文件头方向移动。“起始点”为位移量的参考点,有三种取值:“0”代表文件开始位置,“1”为当前位置,“2”为文件末尾位置。C标准制定的名字如表8-2所示。10fseek()函数参数说明:文件位置指针数字形式起始点名字0文件开始位置SEEK_SET1文件当前位置SEEK_CUR2文件末尾位置SEEK_END例如:fseek(fp,50L,0);/以文件开头为基准,文件位置指针向文件尾方向移动fseek(fp,-50L,2);/以文件尾为基准,文件位置指针向文件头方向移动fseek()函数适用于二进制文件。在文本文件中因为需要进行字符转换,计算字节时容易发生混乱,不利于定位。例:8-10:编写程序,将两个字符串依次写入文件file6.txt中,并将文件中的内容输出到显示器。#include#include#includevoidmain()FILE*fp;charbuffer20;fp=fopen(file6.txt,w+);fputs(Welove,fp);fseek(fp,8,SEEK_SET);fputs(CLangauge.,fp);fclose(fp);if(fp=fopen(file6.txt,r+)=NULL)printf(打开文件失败!n);exit(0);rewind(fp);fread(buffer,1,strlen(buffer),fp);printf(%sn,buffer);fclose(fp);0302018.5.3 ftell()函数ftell()函数用于寻找位置指针的当前位置。ftell()函数原型为:longintftell(FILE*stream)ftell()函数返回值为文件位置指针当前位置相对于文件开始的偏移字节数,如函数调用出错,则返回-1。ftell()函数调用的一般格式为:len=ftell(fp);例:例8-11:编写程序,将两个字符串依次写入文件file6.txt中,并将文件中的内容输出到显示器。#include#includevoidmain()FILE*fp;intlen;fp=fopen(file6.txt,r);/以只读方式打开文件file6.txtif(fp=NULL)printf(打开文件错误n);exit(0);fseek(fp,0,SEEK_END);/文件位置指针指向文件尾len=ftell(fp);/将指针的当前位置赋给变量lenfclose(fp);printf(file6.txt的总大小=%d字节n,len);/输出文件的字节数040302018.5.4 feof()函数feof()函数用于判断文件位置指针是否在文件结束位置。feof()函数原型为:intfeof(FILE*fpoint);feof()函数调用的一般格式为:feof(文件指针);当文件位置指针在文件末尾时,返回值为1,否则返回值为0。例如:if(feof(fp)=1)printf(已经指向文件末尾n);elseprintf(没有指向文件末尾n);例:8-12:编写程序,将文件“file6.txt”复制到另一个文件“file7.txt”中,然后读取“file7.txt”文件中的字符并输出。#include#includevoidmain()FILE*fp1,*fp2;charc;if(fp1=fopen(file6.txt,r)=NULL)printf(错误:文件打开失败!n);exit(0);if(fp2=fopen(file7.txt,w+)=NULL)printf(错误:文件打开失败!n);exit(0);while(!feof(fp1)c=fgetc(fp1);fputc(c,fp2);rewind(fp2);doc=fgetc(fp2);printf(%c,c);while(!feof(fp2);putchar(n);fclose(fp1);fclose(fp2);028.6 文件操作的出错检测函数17文件操作说明:文件操作的三个重要步骤为打开文件、打开文件判断和关闭文件,判断打开文件是否成功或者关闭文件是否成功,而且由于这类错误在程序编译及组建时并不报错,很容易被忽略。因此,在编写程序对文件操作时可先把这三个步骤写好,然后再添加其他操作程序段。例如:if(fp1=fopen(file.txt,r)=NULL)/*以只读方式打开文件file.txt*/printf(错误:文件打开失败!n);exit(0);C语言还提供函数ferror()和clearerr(),用以对文件读写操作过程中的出错情况进行检测。040302018.6.1 ferror()函数用于在调用输入、输出函数以后,检查调用的结果,如果ferror()的返回值为0,表示调用输入、输出函数成功,否则表示出错。ferror()函数原型为:intferror(FILE*stream)ferror()测试给定流stream的错误标识符,如果设置了与流关联的错误标识符,该函数返回一个非零值,否则返回一个零值。ferror()函数的一般格式:ferror(文件的指针);例如:ferror(fp);/fp为指向文件的指针变量040302018.6.2 clearerr()函数clearerr()函数用于清除文件错误标志并置文件结束标志为0。在调用ferror()函数以后,如果出现调用输入、输出函数错误,将返回一个非0值作为错误标志,只有对同一文件调用。clearerr()函数原型为:voidclearerr(FILE*stream)clearerr()函数清除给定流stream的文件结束和错误标识符。clearerr()函数的一般格式:clearerr(文件指针);例如:clearerr(fp);/其中fp为指向文件的指针变量。例:8-13:编写程序,将文件“file6.txt”复制到另一个文件“file7.txt”中,然后读取“file7.txt”文件中的字符并输出。#includevoidmain()FILE*fp;charc;fp=fopen(file6.txt,w);c=fgetc(fp);if(ferror(fp)printf(读取文件:file6.txt时发生错误!n);clearerr(fp);if(ferror(fp)printf(读取文件:file6.txt时发生错误!n);elseprintf(正常读取文件:file6.txt!n);fclose(fp);038.7 文件操作应用例8-14:编写程序,将学生姓名和成绩写入文件“学生成绩单.txt”,并将平均成绩写入文件。有5个学生,每个学生信息都包括两个部分,姓名和C语言成绩两项,需要用到结构体变量存放学生信息;具体数据如表所示。请计算出5个学生的平均成绩,并将原有数据与平均成绩都存放在磁盘文件“学生成绩单.txt”中。姓名PeterLucyMaryTomJohnC语言成绩857883926823定义结构体类型:#include#include#defineN5typedefstruct/*定义结构体类型*/charname10;/*定义成员名字*/floatscore;/*定义成员分数*/student;24定义数据:voidmain()FILE*fp;/*定义文件描述符指针*/studentstuN=Peter,85,Lucy,78,Mary,83,Tom,92,John,68,;/*定义结构体变量并赋初值*/doublesum=0.0;/*定义变量sum并赋初值*/doubleave;/*定义变量ave*/inti;/*定义循环变量*/25if(fp=fopen(学生成绩单.txt,w+)=NULL)/*判断文件是否打开成功*/printf(错误:文件打开失败!n);exit(0);for(i=0;iN;i+)/*循环条件*/fprintf(fp,姓名:%s成绩:%fn,stui.name,stui.score);/*输出名字和分数到文件*/sum=sum+stui.score;/*计算总分*/ave=sum/N;/*计算平均分*/fprintf(fp,平均成绩:%fn,ave);/*输出平均分到文件*/fclose(fp);/*关闭文件*/文件操作:048.8 常见错误分析与解决04030201(1)打开文件不存在。(2)打开方式有误。(3)文件操作步骤错误。(4)错用文件位置指针。常见错误通过本节学习重点理解和掌握的知识有:(1)掌握文件定位。(2)掌握fseek()函数设置流stream的文件位置。(3)掌握ftell()函数返回值文件位置指针当前位置。(4)掌握feof()函数判断文件位置指针是否在文件结束位置。(5)文件操作出错检测函数ferror()、clearerr()函数应用。本节小结

    注意事项

    本文((中职)C语言程序设计案例教程第8章文件(5-8节)教学课件().ppt)为本站会员(春哥&#****71;)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开