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

    C语言程序设计(最新版)精品PPT课件.ppt

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

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

    C语言程序设计(最新版)精品PPT课件.ppt

    第10 章 文件及其应用主要内容文本文件的读写文本文件的读写二进制文件的读写二进制文件的读写文件的定位与随机读写文件的定位与随机读写文本文件的读写 应知应知:-文件的分类-文本文件读写的步骤-文本文件读写函数的功能及函数参数的含义应会应会:-文本文件的打开、读写、关闭-将单个字符、字符串进行文件读写,进行文件复制等程序的编写 难点难点:-文件的读写英文词汇File 文件文件Read 读读 Write 写写Buffer 缓冲区缓冲区提 问指针变量的数据类型如何确定?指针变量的数据类型如何确定?指针变量作为函数参数时,值或地址指针变量作为函数参数时,值或地址传递?传递?创建链表的算法?创建链表的算法?知识回顾:线性链表简单叙述输出链表所有结点的数据域(遍历)的算法思路1.定义一个结点类型的指针变量定义一个结点类型的指针变量current作为循环变量,作为循环变量,并赋初始值为并赋初始值为pHead,指向链表头结点指向链表头结点.2.输出输出current所指向结点的数据所指向结点的数据.3.将将current指向下一个结点指向下一个结点.4.循环结束条件是循环结束条件是current=NULL.学一学:文件基础知识对文件的操作只有读和写两种,通常情况下,对文件的操作只有读和写两种,通常情况下,将内存中的数据写入到文件,称为文件的输出;将内存中的数据写入到文件,称为文件的输出;将文件中的数据读入到内存称为文件的输入。将文件中的数据读入到内存称为文件的输入。C语言中,以缓冲文件系统方式读写文件的步骤为语言中,以缓冲文件系统方式读写文件的步骤为定义文件指针;定义文件指针;打开文件;打开文件;读写文件;读写文件;关关闭文件。闭文件。学一学1定义文件指针定义文件指针 一般形式为:一般形式为:FILE *fp;其中fp就是所定义文件指针。FILE类型以及所有的文件读写函数和相关常量都定义在文件stdio.h中,在源程序的开头要包含头文件 stdio.h。学一学 2打开文件打开文件 C语言中,使用fopen函数来打开文件。fopen函数的调用形式:fopen(chFileName,mode);以mode 方式打开文件chFileName。其中,参数chFileName 是将要读写文件的文件名,mode为文件的操作方式。若文件打开成功,返回一个文件指针,若打开失败,则返回空值NULL,NULL在stdio.h中被定义为0。文件操作方式mode是一个整数,其取值及含义如表10-1所示。学一学 学一学3.文件的读写通过函数进行。文本文件的读写函数主要有fgetc和fputc,fgets和fputs,其调用形式如表10-2所示。表10-2中的EOF是文件结束标志,定义在文件stdio.h中,其值为-1,可用来判断文本文件是否结束。学一学 4.关闭文件关闭文件 C语言使用fclose函数关闭文件。关闭文件就是使原来指向该文件的文件指针与文件脱离,fclose的调用形式为:fclose(fp);关闭文件指针fp所指的文件。若文件关闭成功,返回值为NULL,否则,返回一个非0值,表示关闭文件时出错。试一试问题10.1编一程序从键盘输入一串字符“may friendship forever!”,然后保存在文件myInfo.txt中。调试问题调试问题10.1程序,观察运程序,观察运行结果行结果想一想 问题10.1用fputs函数实现应如何修改程序?请根据提示写出完整程序。提示:(1)删除语句int i;(2)可将语句 i=0;while(chInfoi!=0)fputc(chInfoi,fp);i+;改为:fputs(chInfo,fp);试一试问题问题10.2:打开问题10.1生成的文件myInfo.txt,将其中的内容显示在屏幕上,要求文件名从命令行参数输入。【解题步骤解题步骤】1定义文件指针fp;2定义字符变量用来存放从文件中读取的字符;3以读文本文件方式打开文件(文件名由命令行参数输入);4如果打开文件失败,则输出错误信息并结束程序;5读取文件中的内容并显示在屏幕上;6关闭文件。想一想 问题问题10.2用用fgets函数实现应如何修改程序?函数实现应如何修改程序?请根据提示写出完整程序。请根据提示写出完整程序。提示:(1)语句char ch;改为char*chInfo;(2)语句ch=fgetc(fp);while(ch!=EOF)putchar(ch);ch=fgetc(fp);改为:fgets(chInfo,100,fp);printf(%s,chInfo);注意,fgets函数中的第2个参数为要读取的字符数,要大于或等于文件的长度+1。练一练问题:编一程序实现文件的拷贝,将文件myInfo.txt拷贝到文件myBak.txt。要求源文件名和目标文件名都在程序运行时通过键盘输入,可将其存放在两个字符数组中,然后再在打开文件时使用。问题与讨论什么是缓冲文件系统,有什么优点?二进制文件和文本文件各有什么优缺点?学生容易错的地方文件操作完毕后不关闭文件;文件操作完毕后不关闭文件;文件打开时没有赋给一个文件指针。文件打开时没有赋给一个文件指针。小结:1文件的存储形式。数据在内存中以二进制形式存放,当把内存中的数据输出到磁盘文件中时可以用两种形式存储,即字符形式或二进制形式。2.在C语言中,系统定义了一个文件类型FILE,用来实现缓冲文件系统方式下文件的读写操作,文件指针就是一个FILE类型的指针变量,由此实现文件的具体读写。3其它读写函数。C语言提供了多种以缓冲文件系统方式读写文本文件的函数,在ANSI C中,还有格式化读写函数fprintf和fscanf可用来读写文本文件。二进制文件的读写 应知应知:-二进制文件读写的步骤-二进制文件读写函数的功能及函数参数的含义应会应会:-二进制文件的打开、读写、关闭-对数据块进行操作 难点难点:-对数据块进行读写英文词汇File 文件文件Binary 二进制二进制 提 问什么是缓冲文件系统,有什么优点?什么是缓冲文件系统,有什么优点?二进制文件和文本文件各有什么优缺二进制文件和文本文件各有什么优缺点?点?知识回顾:文本文件简单叙述文件操作四步骤1.定义文件指针定义文件指针.2.打开文件打开文件.3.读写文件读写文件.4.关闭文件关闭文件.学一学:二进制文件的读写对于二进制文件,以缓冲文件系统方式读写文件的步骤同样为以下四个步骤:定义文件指针;打开文件;读写文件;关闭文件。其中定义文件指针、打开文件和关闭文件的操作在上一节中已介绍过,这里主要学习用来读写二进制文件的两个函数fread和fwrite。学一学块写入函数fwrite的调用形式为:fwrite(buffer,size,n,fp)将buffer开始处的n个大小为size字节的数据块(记录)写入到文件指针fp所指向的文件中。成功返回数据块(记录)个数n,不成功返回0。块读取函数fread的调用形式为:fread(buffer,size,n,fp)从文件指针fp所指向的文件中读取n个大小为size 个字节的数据块(记录)到buffer所指向的地址空间。成功返回数据块(记录)个数n,出错或遇文件结束返回0。试一试问题10.3 编一程序从键盘输入5个整数并写入到文件test.dat中。调试问题调试问题10.3程序,观察运程序,观察运行结果行结果想一想将问题10.3中的5个整数改为5个实数写入文件testFloat.dat中应如何修改程序?试一试问题问题10.4 编一程序从问题10.3写入的文件test.dat中读取数据并显示在屏幕上。【解题步骤解题步骤】1定义整型数组iArray用来存放5个整数;2定义整型变量i作为循环变量;3定义文件指针fp;4以读二进制文件方式打开文件test.dat;5如果打开文件失败,则输出错误信息并结束程序;6从文件中读取5个整数并存放在数组iArray中;7显示数组iArray中的元素;8关闭文件。想一想文件testFloat.dat中存有5个实数,请读取并显示出来,应如何实现?试一试问题问题10.5 编一程序从键盘输入5个学生的成绩记录并写入到文件stdScore.dat中。5个学生的成绩记录见表10-3。调试问题调试问题10.5 程序,程序,观察运行观察运行结果结果想一想问题10.5的写文件操作是每次写入一个学生的信息,循环5次,如果不使用循环语句而一次性地将5个学生数据写入文件,应该怎样实现?试一试问题10.6 编一程序将问题10.5所写的文件stdScore.dat中的数据显示在屏幕上。【解题步骤解题步骤】1定义学生成绩结构体类型type_score;2定义结构体类型type_scor数组stScore5 用来存放从文件中读取的信息;3定义文件指针fp;4定义整型变量i作为循环变量;5以读二进制文件方式打开文件stdScore.dat;6如果打开文件失败,则输出错误信息并结束程序;7逐条读取文件中的记录存放在结构体数组stScore中8关闭文件;9显示结构体数组stScore中的数据。想一想问题10.6的读取文件操作是每次读出一个学生的信息,循环5次,如果不使用循环语句而一次性地读出5个学生的数据,程序怎样更改?练一练问题:编一程序从文件stdScore.dat(问题10.5已写入数据)中将姓名、学号和数学成绩3个字段的数据保存在文件stdMath.dat中。问题与讨论为什么使用数据块读写函数?EOF是否可以用来检测二进制文件的结束?怎样检测二进制文件的结束?学生容易错的地方对不存在的文件进行读操作;对不存在的文件进行读操作;操作方式不熟悉。操作方式不熟悉。小结1使用fread和fwrite函数可以方便地读写任意类型的数据,比如int型、float型、char型等基本类型以及结构体类型的数据。2使用fwrite函数写入数据的文件是二进制文件。文件的定位与随机读写 应知应知:-以缓冲文件系统方式随机读写文件的步骤-指定文件位置值的含义应会应会:-文件读写指针位置的重置-文件读写指针位置的随机定位 难点难点:-文件读写指针位置的随机定位 英文词汇Rewind 重置重置Seek 定位定位 提 问fputc()函数与函数与fputs()函数的区别是函数的区别是什么?什么?fgetc()函数与函数与fgets()函数的区别是函数的区别是什么?什么?学一学:文件的定位与随机读写文件中有一个位置指针,指向当前读写的位置。当顺序读写一个文件时,每读写完一个一个数据单位(一个字符,或一个整数,或一个结构体变量)后,位置指针自动移向下一个数据单位位置,如果想改变这种顺序,就需要强制使位置指针指向指定的位置。以缓冲文件系统方式随机读写文件的步骤为定义文件指针;打开文件;文件的定位;读写文件;关闭文件。文件的定位可以通过重置位置指针函数rewind和随机定位函数fseek来实现。学一学1重置位置指针函数rewind的调用形式:rewind(fp);使文件的读写位置指针重新移到文件的开头。其中fp指 向正在读写的文件。该函数没有返回值。2随机定位函数fseek的调用形式:fseek(fp,lOffset,iOrigin)将文件指针fp所指文件的位置指针移到指定的位置,该位置与iOrigin所代表的文件位置相距lOffset个字节。iOrigin可以是三个给定文件位置中的一个,用三个符号常量(在stdio.h中定义)或0,1,2来表示,具体含义见表10-4。学一学试一试问题10.7 编程将1,2,3,10十个整数写入文件testRand.dat,然后再从文件中读取1,3,5,7,9五个数字并显示。调试问题调试问题10.7 程序,观察运行程序,观察运行结果结果想一想 对于问题10.7,如果要读取文件testRand.dat中的2,4,6,8,10并显示,应该如何修改程序?提示:整数2所在的位置是第2、3字节处,整数4所在的位置是第6、7字节处,整数6所在的位置是10、11字节处,整数8所在的位置是14、15字节处,整数10所在的位置是第18、19字节处。再试一试问题10.8 编一程序从问题10.5写入的文件stdScore.dat中读取一条记录并显示在屏幕上,要求从键盘输入记录的序号。调试问题调试问题10.8 程序,程序,观察运行结果观察运行结果想一想对问题10.7中找到的记录进行修改,修改完以后再写入原来的文件中,应如何修改程序?请根据提示写出完整程序。提示:提示:(1)在变量说明部分增加一个字符变量chYesNo的申明,用来存放用户对是否进行修改的确认。(2)打开文件的方式改为可读写,即rb+。(3)在关闭文件之前,即在语句fclose(filePonter)之前按下面步骤添加程序。从键盘让用户确认是否进行修改,输入字符y 或 n存放在变量chYesNo中;若chYesNo=y,则表示要修改记录,需要完成下面操作。从键盘输入一条学生记录数据并存放在结构体变量stTemp中;定位文件指针到第iRecordID条记录的开始处;将结构体变量stTemp中写入文件;若chYesNo=n,则不对记录进行修改。练一练问题:编一程序在文件stdScore.dat(问题10.5已写入数据)的末尾添加一条新记录,然后将文件中所有记录显示出来。这条新记录为学生Lisa的成绩,具体如下:NameNumberMath English ChineseLisa 1006 8993 75问题与讨论怎样实现随机文件读写?学生容易错的地方打开文件进行写之后,没有将文件位置指针指回文件 文件定位fseek函数的使用小结1在实际应用中,若对某一文件进行多次读写操作后,需要重新读写该文件,使用rewind函数可以在不关闭文件的情况下将位置指针返回文件开头,达到重新读取文件的目的。2使用定位当前位置指针函数ftell可获取当前文件指针的位置。注意,该函数限于二进制文件,对文本文件往往会出错。3.使用函数feof可对文本文件和二进制文件进行文件是否结束的判断。

    注意事项

    本文(C语言程序设计(最新版)精品PPT课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开