欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    数据库文件(数据库).ppt

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

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

    数据库文件(数据库).ppt

    第十二章 文件掌握几个概念:文件、文件操作的分类、顺序文件、索引文件、索引文件访问的过程、ISAM文件、VSAM文件、,文件操作的步骤如下:首先用fopen函数打开文件。然后可以对文件进行读或写操作对文件的读或写操作完成后,应该及时用fclose函数关闭文件。注意:文件操作的所有文件均包含在stdio.h文件中。所以在程序的开始应有#include,12.1 文件的打开与关闭,12.1.1 打开文件函数fopen对文件进行读写之前应当“打开”该文件,读写完毕之后应当“关闭”该文件。ANSI C规定使用fopen函数来打开文件。fopen函数的原型为:FILE*fopen(char*filename,char*mode);其中,filename指定要打开的文件名,可以使用字符串常量,也可以使用指向字符串的指针变量;mode表示文件的使用方式,文件打开模式(mode)说明表,设有如下文件指针的定义:FILE*fp;那么fp=fopen(“student.dat”,”w”);表示以文本方式打开文件student.dat,打开后要往文件中写 入数据。又如:fp=fopen(“score.dat”,”wb+”);表示以二进制方式打开文件score.dat,向文件中写入数据后还可以读出文件中的数据。如果打不开文件(原因很多),fopen会返回空指针NULL,我们常用下面的方法打开文件:if(fp=fopen(“文件名”,“文件使用方式”)=NULL)printf(“无法打开此文件!n”)exit(0);,1.使用“r”和”r+”时,文件应已经存在。2.使用“w”和”w+”时,新建一个文件,若磁盘上已有同名文件则被删除。3.使用“a”和”a+”时,文件应已经存在,原有内容不被删除,位置指针移到文件末尾,可以添加内容。4.在读文本文件时,遇到回车(r=13)换行(n=10)符,自动转换成一个换行符;写时,反过来,将一个换行符转换成一个回车符和一个换行符(为了可以使用TYPE命令显示其内容)。读写二进制文件则无此转换。5.在程序开始运行时,系统自动打开三个文件:标准输入设备(键盘)、标准输出设备(显示器)和标准错误输出设备(通常也是显示器),与之对应的文件指针为stdin、stdout和stderr。,12.1.2 关闭文件函数 fclose,使用完文件后应当关闭它,系统把缓冲区的内容写回文件,然后将文件指针变量与该文件“脱钩”。关闭文件使用函数fclose,它的原型为int fclose(FILE*fp);该函数关闭fp指向的文件。如果文件正常关闭将返回0值;如果关闭文件失败则返回非0值。例fp=fopen(“a:name.txt”,”w”);/*打开一个文本文件*/*对文件进行操作*/fclose(fp);/*关闭该文件*/,12.1.3 检测文件是否结束函数 feof,feof的原型为:int feof(FILE*fp);它用于检测位置指针是否到达了文件尾部。返回0表示位置指针未到达文件尾。返回非0表示位置指针已到达文件尾。,12.2 向文件中写数据,向文件中写入数据可以使用以下函数:fputc函数fputc的原型为int fputc(int ch,FILE*fp);此函数会将字符ch写入fp指向的文件。若操作成功则返回ch的值;若操作失败则返回EOF(-1)。通常用于将一个字符写入一个文本文件。2.fwrite函数函数原型:unsigned fwrite(void*buffer,unsigned size,unsigned count,FILE*fp);功能:将buffer所指向的内存单元开始的内存区中的每项长度为size字节的count个数据项写到fp指向的文件中。此函数主要用于二进制文件的写操作,可以将一个数组的数据写入文件中。,例12.1,建立一个文本文件letter.dat,将26个英文大写字母写到文件中。#include main()char ch;FILE*fp;fp=fopen(letter.dat,w);if(fp=NULL)printf(nCannot open letter.dat!);exit(0);for(ch=A;ch=Z;ch+)fputc(ch,fp);fputc(n,fp);fclose(fp);,建立一个二进制文件score.dat,存放某班32名同学某门课的成绩(每名同学要求有学号和成绩两个数据项。,#include struct struct_name int number;int score;students32;main()FILE*fp;int i;if(fp=fopen(score.dat,wb)=NULL)printf(Cannot open file score.dat!n);exit(0);for(i=0;i32;i+)scanf(%d%d,12.3 往文件中追加数据,若要往文件中追加数据,在打开文件时应将文件的使用方式设为“a”或”ab”,这样的话该文件的位置指针会指向最后一个数据的后面,再用fputc或fwrite即可将数据写到文件的后面。fputc和fwrite除了有写入数据的功能,还会将位置指针向后移动一个位置,为下一次读写操作做准备。,设文件letter.dat(26个英文字母)已经由例10.1建立完毕,编写一个程序,要求键盘输入一组字符(直到输入字符?时结束),将这些字符追加到文件的尾部。,#include main()char ch;FILE*fp;if(fp=fopen(letter.dat,a)=NULL)printf(Cannot open this file!n);exit(0);scanf(%c,12.4 从文件中读取数据,前面介绍了如何往文件中写数据,本节介绍如何从文件中读取数据。12.4.1 fgetc函数fgetc的原型为int fgetc(FILE*fp);功能:从文件的当前位置读出一个字符将位置指针下移一个字符若读取成功则返回所读的字符;若发生错误或文件结束则返回EOF(-1)。,12.4.2.fread函数fread的原型为unsigned fread(void*buffer,unsigned size,unsigned count,FILE*fp);功能:从文件中读取每项长度为size字节的count个数据项,存到buffer所指向的内存单元开始的内存区中。,将letter.dat文件存放的所有字符从显示器上显示出来。由于我们不知道文件中目前的字符个数,因此可以用EOF作为循环的结束条件。#include main()char ch;FILE*fp;if(fp=fopen(letter.dat,r)=NULL)printf(Cannot open letter.dat!n);exit(0);if(ch=fgetc(fp)=EOF)printf(Blank file!n);while(ch!=EOF)printf(%c,ch);ch=fgetc(fp);fclose(fp);,求score.dat(例10.2建立的文件)的总成绩。#include struct node int number;int score;student;main()FILE*fp;int i;float sum;fp=fopen(score.dat,rb)If(fp=NULL)printf(Cannot open score.dat!n);exit(0);sum=0;,fread(,12.5 文件的定位,我们使用文件定位函数改变位置指针的指向,从而实现对文件的随机读写。12.5.1 位置指针复位函数rewind rewind函数的原型为void rewind(FILE*fp);功能:将文件的位置指针指向文件的开头。清除错误标志和文件结束标志。,12.5.2 位置指针的随机移动函数fseek fseek的原型为int fseek(FILE*fp,long offset,int base);功能:将文件的位置指针移到以base为起始点,offset为位移量的位置,同时清除文件结束标志base常用三个符号常量:SEEK_SET、SEEK_CUR和SEEK_END,分别表示文件开始、当前位置和文件末尾。offset表示以起始点为基准,向前或向后移动的字节数。例如:fseek(fp,2,SEEK_SET);表示将位置指针从文件开始处向后移动2个字节。fseek(fp,2,SEEK_CUR);表示将位置指针从当前位置向后移动2个字节fseek(fp,-2,SEEK_END);表示将位置指针从文件尾部向前移动2个字节。,12.5.3 求文件位置指针当前位置的函数ftell,有时我们需要知道位置指针的当前位置,这就用到了ftell函数。ftell的原型为 long ftell(FILE*fp);功能:返回位置指针相对于文件开头的位移量。若出错返回-1L。,12.6 其它读写函数,12.6.1 格式化读写函数fprintf和fscanf12.6.2 字读写函数putw和getw12.6.3 字符串读写函数fputs和fgets,12.6.1 格式化读写函数fprintf和fscanf,fscanf和fprintf的原型为 int fscanf(FILE*fp,char fmt,);int fprintf(FILE*fp,char fmt,);其中fp为文件指针,fmt为格式串,第三个及以后的参数为输入/输出列表。功能:fscanf按fmt指定的格式从文件中读取数据,并传递到输入列表所指向的内存单元;fprintf把输出列表中的值按fmt指定的格式写到文件中。这两个函数的使用方法同scanf/printf类似。例如fprintf(fp,“%5.2f,%d”,x,i);fscanf(fp,“%f,%d”,12.6.2 字读写函数putw和getw,1、putw函数:使用putw函数可以往指定文件写入一个字(2个字节),即一个整数;而使用getw可以从文件中读出一个整数。putw的原型为 int putw(int w,FILE*fp);功能:向文件中写入一个字(整数)。例如,向文件中写入一个整数20:putw(20,fp);2、getw的原型为int getw(FILE*fp);功能:从文件中读出一个字(整数)。例如:从文件中读出一个整数,赋给整型变量i。i=getw(fp);,12.6.3 字符串读写函数fputs和fgets,1、fputs函数:fputs的原型为 int fputs(char*str,FILE*fp);功能:将字符串str写到文件中。例如fputs(“Computer”,fp);可以将字符串“Computer”写入文件中。2、fgets函数fgets的原型为char*fgets(char*buf,int n,FILE*fp);功能:从文件中读取一个长度为n-1的字符串,存入起始地址 为buf的存储单元,并在读入的字符串末尾加上字符0。如 果读取不到n-1个字符就遇到了换行符或EOF,读取操作立即 结束。,例,从键盘输入若干名同学的姓名,学号,考试成绩,生成student.dat文件,然后通过函数读出信息,显示出来。,#include struct node char name10;char num10;int score;writefile()int i;FILE*f;struct node ss5=thk,11111111,10,thk2,222222222,20,thk3,333333333,30,thk4,444444444,40,thk5,555555555,50;,if(f=fopen(d:student.dat,wb)=NULL)exit(0);for(i=0;i5;i+)/*scanf(%s,readfile()struct node ss5;FILE*f;int i;if(f=fopen(d:student.dat,rb)=NULL)exit(0);for(i=0;i5;i+)fread(,main()char x;printf(*n);printf(1.build file 2.read filen);printf(*n);printf(please choice operation:);x=getchar();if(x=1)writefile();else readfile();,

    注意事项

    本文(数据库文件(数据库).ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开