第九章保存程序数据.ppt
《第九章保存程序数据.ppt》由会员分享,可在线阅读,更多相关《第九章保存程序数据.ppt(22页珍藏版)》请在三一办公上搜索。
1、第九章 保存程序数据,主要内容,案例:将“学生信息管理系统”的学生信息进行永久保存使用文件保存学生信息案例实施学生练习拓展小结,在本章,将继续完善“学生信息管理系统”案例程序。本章可以实现对学生完整信息的长期保存,能将学生的基本信息保存在磁盘上。当需要的时候可以从磁盘上读出数据,当数据被修改的时候,能重新写回磁盘,保证磁盘上的数据和内存数据一致。具体包括:(1)将学生的完整信息保存在磁盘的指定位置;(2)在程序运行的时候可以加载指定文件中的学生信息;,案例:保存学生信息,它一般指存储在外部介质上数据的集合。操作系统是以文件为单位对数据进行管理的。根据文件的组织形式,C语言将文件分为文本文件和二
2、进制文件两种。按文本文件存放数据时,每个字符占一个字节,并且按其ASCII码存储到文件中,所以文本文件也称为ASCII文件。它的每个字节放一个ASCII代码,代表一个字符。按二进制文件存放数据,其存放形式与数据在内存中的存储形式相同,也就是说数据是按其在内存中的存储形式原样输出到磁盘上存放。所以不需要转换,从而可以提高效率而且也能节省存储空间。在C语言中,对文件的读写都是通过库函数实现的。,使用文件保存学生信息-文件概念,文件的处理必须包括:打开文件读或写文件、关闭文件,使用文件保存学生信息-文件操作,标准输入输出函数,用fopen()函数来实现打开文件。fopen函数的调用方式通常是:FIL
3、E*fs;fs=fopen(文件名,打开模式);其中 fs是一个文件指针,文件指针是FILE类型,FILE类型已由系统声明,可直接使用。通过文件指针,可以对它所指向的文件进行各种操作。fopen是一个系统函数,有两个参数,其中文件名包括文件所在的全部路径,路径的分隔符应采用转义字符的形式。文件可以是文本文件,也可以是二进制文件。打开模式是指定所要打开的文件读写方式,打开模式要用小写,并且要用双引号括起来,使用文件保存学生信息-打开文件,使用文件保存学生信息-打开文件,如果不能实现“打开”文件的任务,fopen函数将会带回一个出错信息,出错的原因可能是用“r”方式打开一个并不存在的文件;磁盘出故
4、障;磁盘已经满了,无法建立一个新文件等。此时fopen函数将带回一个空指针值NULL。常常用下面的方法打开一个文件:if(fs=fopen(file1,r)=NULL)printf(cannot open this filen);exit(0);,使用文件保存学生信息-打开文件,fread函数和fwrite函数,一般调用形式为:fread(buffer,size,count,fs);fwrite(buffer,size,count,fs);其中:buffer是一个指针,对fread来说,它是读入数据的存放地址,对fwrite来说,它是要输出数据的地址,都是指起始地址。size要读写的字节数。c
5、ount要进行读写多少个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函数把内存中的学生数据输出到磁盘文件中去:for(i=0;icurrent;i+)fwrite(stu+i),s
6、izeof(Student),1,fs);,使用文件保存学生信息-读写文件,fseek函数可以实现改变文件的位置指针。调用形式为:fseek(文件指针,位移量,起始点)其中起始点用0、1和2代替,0代表“文件的开始”,1代表“当前位置”,2代表“文件的末尾”位移量是指以“起始点”为基点,向前移动的字节数(该位移量可以为正数,也可以是负数)。ANSI C要求位移量是long型数据,这样当文件的长度大于64K时不会出问题。ANSI C标准规定在数字的末尾加一个字母L,表示是long型。同时fseek函数一般用于二进制文件,因为文本文件要发生字符转换,计算位置时往往发生混乱。可以用:succ=fse
7、ek(fs,0,SEEK_END);使得fseek函数返回文件的末尾。,使用文件保存学生信息-读写文件,ftell()函数的作用是得到文件中的当前位置,用相对于文件开头的位移量来表示。由于文件中的位置指针经常移动,人们往往不容易知道当前的位置。用ftell函数可以得到当前的位置,如果ftell函数返回值为-1L,表示出错。如:i=ftell(fs);if(i=-1l)printf(errorn);,使用文件保存学生信息-读写文件,在使用完一个文件后应该关闭它,以防止它再被误用。“关闭文件”就是使文件指针变量不指向该文件,也就是文件指针变量与文件“脱钩”,此后不能再通过该指针对原来与其相联系的文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九 保存 程序 数据

链接地址:https://www.31ppt.com/p-5298910.html