- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 保存程序数据 主要内容 案例:将“学生信息管理系统”的学生信息进行永久保存 使用文件保存学生信息 案例实施 学生练习 拓展 小结 案例:保存学生信息 在本章,将继续完善“学生信息管理系统”案例程序。本章可以实现对学生完整信息的长期保存,能将学生的基本信息保存在磁盘上。当需要的时候可以从磁盘上读出数据,当数据被修改的时候,能重新写回磁盘,保证磁盘上的数据和内存数据一致。具体包括: (1)将学生的完整信息保存在磁盘的指定位置; (2)在程序运行的时候可以加载指定文件中的学生信息; 使用文件保存学生信息-文件概念 它一般指存储在外部介质上数据的集合。操作系统是以文件为单位对数据进行管理的。 根据文件的组织形式,C语言将文件分为文本文件和二进制文件两种。 按文本文件存放数据时,每个字符占一个字节,并且按其ASCII码存储到文件中,所以文本文件也称为ASCII文件。它的每个字节放一个ASCII代码,代表一个字符。 按二进制文件存放数据,其存放形式与数据在内存中的存储形式相同,也就是说数据是按其在内存中的存储形式原样输出到磁盘上存放。所以不需要转换,从而可以提高效率而且也能节省存储空间。 在C语言中,对文件的读写都是通过库函数实现的。 使用文件保存学生信息-文件操作 文件的处理必须包括: 打开文件 读或写文件、 关闭文件 磁盘文件 内存储器 数据 存储区 …… …… …… 磁盘文件 内存储器 …… …… …… 数据 存储区 磁盘文件 内存储器 数据 存储区 …… …… …… 磁盘文件 内存储器 数据 存储区 …… …… …… 使用文件保存学生信息-打开文件 标准输入输出函数,用fopen() 函数来实现打开文件。 fopen函数的调用方式通常是: FILE *fs; fs=fopen(文件名,打开模式); 其中 fs是一个文件指针,文件指针是FILE类型,FILE类型已由系统声明,可直接使用。通过文件指针,可以对它所指向的文件进行各种操作。 fopen是一个系统函数,有两个参数,其中文件名包括文件所在的全部路径,路径的分隔符\应采用转义字符的形式。文件可以是文本文件,也可以是二进制文件。 打开模式是指定所要打开的文件读写方式,打开模式要用小写,并且要用双引号括起来 使用文件保存学生信息-打开文件 Mode(方式) 意义 r(只读) 打开一个文本文件,只允许读数据 w(只写) 创建一个文本文件,只允许写数据 a(追加) 打开一个文本文件,并在文件的末尾增加数据 rb(只读) 打开一个二进制文件,只允许读数据 wb(只写) 创建一个二进制文件,只允许写数据 ab(追加) 打开一个二进制文件,并在文件的末尾增加数据 r+(读写) 打开一个文本文件,允许读和写 w+(读写) 建立一个文本文件,允许读和写 a+(读写) 打开一个文本文件,允许读或在文件末尾追加数据 rb+(读写) 打开一个二进制文件,允许读和写 wb+(读写) 建立一个二进制文件,允许读和写 ab+(读写) 打开一个二进制文件,允许读或在文件末尾追加数据 使用文件保存学生信息-打开文件 如果不能实现“打开”文件的任务,fopen函数将会带回一个出错信息,出错的原因可能是用“r”方式打开一个并不存在的文件;磁盘出故障;磁盘已经满了,无法建立一个新文件等。此时fopen函数将带回一个空指针值NULL。常常用下面的方法打开一个文件: if((fs=fopen(file1, r))==NULL) { printf(cannot open this file\n); exit(0); } 使用文件保存学生信息-读写文件 fread函数和fwrite函数,一般调用形式为: fread(buffer,size,count,fs); fwrite(buffer,size,count,fs); 其中:buffer是一个指针,对fread来说,它是读入数据的存放地址,对fwrite来说,它是要输出数据的地址,都是指起始地址。 size要读写的字节数。 count要进行读写多少个size字节的数据项。 fs文件类型的指针。 使用文件保存学生信息-读写文件 Student *stu; stu = (Student *)malloc(total*sizeof(Student)); 假设学生的数据已经存放在磁盘文件中,并且存放了current个学生的信息,这时可以用下面的for语句和 fread函数读入current个学生的数据: for(i=0;icurrent;i++) fread((stu+i), sizeof(Student), 1, fs); 可以用fwrite函数把内存中的学生数
您可能关注的文档
- Courseware第10章幻灯片.ppt
- linux立体教学资源教学课件作者ceac教学演示linux立体教学资源教学课件作者ceac教学演示第9课课件幻灯片.ppt
- Courseware第11章幻灯片.ppt
- 高考的心理调适幻灯片.ppt
- linux立体教学资源教学课件作者ceac教学演示linux立体教学资源教学课件作者ceac教学演示第10课幻灯片.ppt
- linux立体教学资源教学课件作者ceac教学演示linux立体教学资源教学课件作者ceac教学演示第10课课件幻灯片.ppt
- 高考第二轮复习幻灯片.ppt
- Courseware第12章幻灯片.ppt
- linux立体教学资源教学课件作者ceac教学演示linux立体教学资源教学课件作者ceac教学演示第11课幻灯片.ppt
- Courseware第13章幻灯片.PPT
- C程序设计教学课件2第零章课程简介和要求幻灯片.ppt
- 高考语文二轮专题复习课件:发展等级之深刻幻灯片.ppt
- Linux网络服务第五章构建LAMP网站服务平台二幻灯片.ppt
- C程序设计教学课件2第六章处理简单数据幻灯片.ppt
- Linux网络服务第一章Linux基本网络配置幻灯片.ppt
- 高考语文二轮专题复习课件:发展等级之有创意幻灯片.ppt
- Linux网络服务器应用教程作者王兴主编第二章节Linux的基本应用课案幻灯片.ppt
- 高考语文二轮专题复习课件:发展等级之有文采幻灯片.ppt
- Linux网络管理员第6章节DHCP服务器幻灯片.ppt
- 高考语文二轮专题复习课件:分析结构把握思路练习幻灯片.ppt
文档评论(0)