第8章文件操作2课时课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第8章文件操作2课时课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件 操作 课时 课件
- 资源描述:
-
1、语言程序设计C语言程序设计语言程序设计 信息与电气工程学院信息与电气工程学院20122012年年5 5月月CDIO.flash8net_2454.swf语言程序设计第八章第八章 文件操作文件操作工资管理系统之工资管理系统之数据永久记录数据永久记录 任务一任务一 学习目标学习目标 任务二任务二 了解文件了解文件 任务三任务三 了解文件的存储形式了解文件的存储形式 任务四任务四 了解对文件的操作了解对文件的操作 任务五任务五 打开文件打开文件fopen 任务六任务六 将职工工资数据写入文件将职工工资数据写入文件fwrite 函数的应用函数的应用语言程序设计 任务七任务七 从文件中读取职工工资数据从
2、文件中读取职工工资数据fread 函数的应用函数的应用 任务八任务八 关闭文件关闭文件fclose 函数的应用函数的应用 任务九任务九 更多的读写文件函数更多的读写文件函数 任务十任务十 了解文件数据的定位了解文件数据的定位 任务十一任务十一 知识扩展知识扩展 任务十二任务十二 精选案例精选案例 任务十三任务十三 本章要点汇总本章要点汇总 任务十四任务十四 实力检验实力检验语言程序设计1、本章主要任务就是解决数据的保存问题;2、数据的保存涉及文件的概念和操作;3、如何通过语言代码加以实现,需要深入学习文件的相关知识。语言程序设计1、“文件”:是指存放在外存储器上的各类信息的有序集合;2、按照不
3、同的标准,可以将文件进行分类;3、文件操作主要指对文件的建立、删除、读取、写入等操作。语言程序设计1、根据文件内数据组织形式的不同,可以将数据文件分为文本文件和二进制文件;2、文本文件记录的是字符信息,其中每一个字节存放一个 ASCII 代码,表示一个字符,如字母、数字、标点符号等。而二进制文件则是将数据按其在内存中的原始存储形式,直接输出到磁盘上,即文件的内容就是内存的直接映像;3、二进制文件居多。语言程序设计打开文件、读文件、写文件、关闭文件等语言程序设计ANSI C 规定了标准输入/输出函数库stdio.h中的 fopen 函数,用来实现打开文件的操作。其调用方式通常为:FILE *fp
4、;/*fp为文件指针变量标识符,由程序设计人员命名*/fp=fopen(文件名,文件打开方式);例如:打开工资管理系统中的职工工资数据文件gz.dat FILE *file;file=fopen(gz.dat,rb“);/*rb表示以只读方式打开二进制文件 gz.dat*/FILE是一个结构,每个被打开使用的文件都会在内存中开辟一个区域,用于存放该文件的有关信息,诸如文件的名字、状态和当前位置等此处是需要打开的文件,以字符串形式表达,如果包含路径,应该如何表达呢?此处是打开文件的方式,具体请看教材P243语言程序设计r只读以读方式打开文本文件w只写以写方式创建文本文件,原文件存在则删除后创建,
5、文件不存在则直接创建a追加以追加方式打开文本文件,只允许在文件尾写入rb只读以读方式打开二进制文件wb只写以写方式创建二进制文件,原文件存在则删除后创建,文件不存在则直接创建ab追加以追加方式打开二进制文件,只允许在文件尾写入r+读写以读写方式打开文本文件,可读可写w+读写以读写方式创建文本文件,原文件存在则删除后创建,文件不存在则直接创建a+读写以读写方式打开文本文件,允许读,亦允许在文件末写入rb+读写以读写方式打开二进制文件,允许读,亦允许写语言程序设计 if(file=fopen(gz.dat,wb)!=NULL)/*判断打开成功*/*成功后的处理*/fwrite(&zggz0,siz
6、eof(zggz0),n+1,file);/*所有记录一次写入文件*/fclose(file);/*关闭文件*/printf(记录保存完毕!n);或者:if(file=fopen(gz.dat,wb)=NULL)/*判断打开失败*/printf(文件打开失败);语言程序设计能够将数据写入文件的能够将数据写入文件的 C 语言标准函数有语言标准函数有很多,在实际的软件开发过程中,较常用的是很多,在实际的软件开发过程中,较常用的是函数函数。size_t fwrite(const void*buf,size_t size,size_t count,FILE*stream)从内存地址 bufbuf 处开
7、始,将countcount 个 sizesize 大小的数据写入文件streamstream中。成功写入的实际数据块个数。stdio.h 相关函数参见任务七中的fread()函数。语言程序设计以下是以下是“职工工资管理系统职工工资管理系统”中的一个自定义函数中的一个自定义函数void write()FILE*file;/*声明文件指针*/if(n=-1)/*职工人数为0时*/printf(没有数据可存!按任意键返回主菜单。n);getch();return;if(file=fopen(gz.dat,wb)!=NULL)/*以二进制方式打开职工工资数据文件,并判断是否成功*/fwrite(&zg
8、gz0,sizeof(zggz0),n+1,file);/*所有记录一次写入文件*/语言程序设计 能够从文件中读取数据的能够从文件中读取数据的 C 语言标准函数语言标准函数同样有很多,在实际的软件开发过程中,较常同样有很多,在实际的软件开发过程中,较常用的是用的是 函数函数。size_t fread(void*buf,size_t size,size_t count,FILE*stream)从从 streamstream 指示的文件中,读取指示的文件中,读取 countcount 个个 sizesize 大小的数据,放入内大小的数据,放入内存地址存地址 bufbuf处。处。成功读取的数据块个数
9、。成功读取的数据块个数。stdio.h 语言程序设计以下是以下是“工资管理系统工资管理系统”中的一个自定义函数,中的一个自定义函数,其功其功能是实现将职工工资信息从文件能是实现将职工工资信息从文件gz.dat读入内存,并存放于结读入内存,并存放于结构数组构数组 zggz100中。中。void read()FILE*file;/*声明文件指针*/if(file=fopen(gz.dat,rb)=NULL)/*以二进制方式打开职工工资数据文件,并判断是否失败*/printf(nnt职工工资数据文件无法打开,或为空!);printf(nnt按任意键进入主菜单);getch();return;else
10、 /*文件打开成功时*/语言程序设计程序对指定文件进行读写操作完成后,必须“关闭”该文件。尤其是写操作,因为,在缓冲文件系统中,写操作的直接目标是内存缓冲区,而不是磁盘,“关闭”文件就是将内存缓冲区中的内容写入到磁盘文件中,所以,只有执行了“关闭”操作,才能保证文件内容的完整性。语言程序设计fclosefclose()()函数说明函数说明int fclose(FILE*stream)关闭文件指针。关闭前清除所有与关闭文件指针。关闭前清除所有与streamstream相关联的缓冲区,释放系统分相关联的缓冲区,释放系统分配的缓冲区。配的缓冲区。成功时返回成功时返回0 0;失败时返回;失败时返回EO
11、FEOFstdio.h EOFEOF意为意为end-of-fileend-of-file,是,是C C内部宏定义:内部宏定义:#define EOF-1#define EOF-1 对文本文件读操作时,经常以此判断是否文对文本文件读操作时,经常以此判断是否文件读取完毕。件读取完毕。语言程序设计int fgetc(FILE*stream)从指针streamstream指定的文件中读取一个字符成功时返回所读字符;当遇到文件结束符EOFEOF时,返回-1stdio.h相关函数参见第三章任务六中的getchargetchar()()函数语言程序设计int fputc(int ch,FILE*stream
12、)将字符ch写入到指针stream指定的文件中成功时返回所写字符的ASCII码值;失败时返回EOFstdio.h相关函数参见第三章任务六中的putchar()函数语言程序设计【案例【案例8-1】从一个文本文件中读取一个字符,然后写入到另一个文本文件中。分析分析在“C:”目录下创建一个文本文件text.txttext.txt,内容如图8-1所示;以读方式打开上述文本文件,并读取一个字符;以写方式创建文件C:text1.txt,再将字符写入其中,同时在屏幕上进行显示。语言程序设计#include int main()FILE*fp;/*定义文件指针*/char ch;/*记录从c:text.txt
13、中读取的、向c:text1.txt写入的一个字符*/if(fp=fopen(c:text.txt,r)!=NULL)ch=fgetc(fp);/*打开文件成功后,读取一个字符赋值给ch*/else return 0;/*打开文件失败时,退出程序并返回0*/fclose(fp);/*关闭文件*/if(fp=fopen(c:text1.txt,w)!=NULL)fputc(ch,fp);/*打开成功后,将ch中记录的字符写入文件*/语言程序设计咋整呢?咋整呢?语言程序设计char*fgets(char*str,int num,FILE*steam)从streamstream中读取num-1num-
14、1个字符,放入strstr所指的字符数组中,并将NULLNULL放入到最后一个字符后。成功时返回成功时返回strstr;失败时返回空指针。;失败时返回空指针。stdio.hstr可以是数组名;当读了num-1个字符后或遇到换行符时,函数停止读过程。语言程序设计int fputs(const char*str,FILE*stream)将str所指的字符串内容写入指针stream指定的文件中,字符串结束标志NULL并不写入。成功时返回0 0;失败时返回EOFEOF。stdio.h语言程序设计text.txttext.txttext2.txttext2.txt语言程序设计#include int m
展开阅读全文