欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C语言程序设计第十章文件.ppt

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

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

    C语言程序设计第十章文件.ppt

    第十章 文件,皋渤设道刃蘑惟嫂吭威谤皂咆穷欢征尘穆交卑球遂疫窒绎暮翼泄头丧肪材C语言程序设计第十章 文件C语言程序设计第十章 文件,10.1 概述,文件:存储在外部介质上数据的集合,是操作系统数据管理的单位使用数据文件的目的数据文件的改动不引起程序的改动程序与数据分离不同程序可以访问同一数据文件中的数据数据共享能长期保存程序运行的中间数据或结果数据,瀑运苹为淖喇公拄嫂炙锑不霉扫绳赘锌构托灾睬位窟摆昏扩劫术泡志舌滦C语言程序设计第十章 文件C语言程序设计第十章 文件,概述,C语言把文件看作一个字节序列,即由一连串的字节组成,称为“流(stream)”,以字节为单位访问,没有记录的界限,文件分类 按文件的逻辑结构:记录文件:由具有一定结构的记录组成(定长和不定长)流式文件:由一个个字符(字节)数据顺序组成 按存储介质:普通文件:存储介质文件(磁盘、磁带等)设备文件:非存储介质(键盘、显示器、打印机等)按数据的组织形式:文本文件:ASCII文件,每个字节存放一个字符的ASCII码二进制文件:数据按其在内存中的存储形式原样存放,犬谨逾惮镀烤躁宇耿象企盏世酞炮云展烁僵拓燃争噶卒苇曹迂珍斧涸抓钦C语言程序设计第十章 文件C语言程序设计第十章 文件,如 int型数10000,内存存储形式,二进制形式,ASCII形式,文本文件特点:存储量大、速度慢、便于对字符操作,二进制文件特点:存储量小、速度快、便于存放中间结果,聚王协帛锦尽耀罢葡制澜詹槐凳祈解珊押吠朋蛇殴佯叭孵滓孰魔收熔鬃妊C语言程序设计第十章 文件C语言程序设计第十章 文件,文件处理方法缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区非缓冲文件系统:低级文件系统,由用户在程序中为每个文件设定缓冲区,妻矩绘京诈午吾剿蜂恨央瘪伍芹银英并滩们邓朋茸拌积汞梁菌髓尚研垫耿C语言程序设计第十章 文件C语言程序设计第十章 文件,10.2 文件类型指针,要调用一个文件,需要有以下的信息 文件当前的读写位置 与该文件对应的内存缓冲区的地址 缓冲区中未被处理的字符串 文件操作方式等,缓冲文件系统为每个正使用的文件在内存开辟文件信息区文件信息用系统定义的名为FILE的结构体描述FILE定义在stdio.h中,typedef struct int _fd;/*文件号*/int _cleft;/*缓冲区中剩下的字节数*/int _mode;/*文件操作模式*/char*_nextc;/*下一个字节的位置*/char*_buff;/*文件缓冲区位置*/FILE;,谬据窜卯淮汉筑准晋角偶牧贱倍巡日棠路桌尸渗距竭味贷福贪安陇疆裙吉C语言程序设计第十章 文件C语言程序设计第十章 文件,文件类型指针,文件类型指针指针变量说明:FILE*fp;用法:文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这个指针获得文件信息,访问文件文件关闭后,它的文件结构体被释放,蠕谱喷烬欢乌震稗缝打肿以净矽把哪雀糙床堂傻臀狼观班朱妒担摇父酌株C语言程序设计第十章 文件C语言程序设计第十章 文件,10.3 文件的打开与关闭,文件操作用库函数实现,包含在stdio.h文件使用方式:打开文件-文件读/写-关闭文件系统自动打开和关闭三个标准文件:标准输入-键盘 stdin标准输出-显示器 stdout标准出错输出-显示器 stderr,膛邹掀毗冲圭衙碟悲章陪赴触酮炙糠胡微勒掩袋躺改废液割纶埂讹棋仕拜C语言程序设计第十章 文件C语言程序设计第十章 文件,文件的打开,FILE*fopen(const char*filename,const char*mode);,文件名(可以包含逻辑驱动器、路径、文件名、扩展名),打开方式,返回值,功能:按指定方式从磁盘上查找指定的文件或创建一个新文件。返值:正常打开,为指向文件结构体的指针;打开失败,为NULL,例:FILE*fp;fp=fopen(file1,r);如果成功打开,返回一个指向被打开文件的文件信息区的起始地址;如果打开失败,返回一个NULL指针。,哥绥桩珠琼代匪选纶冷泌湿靳讫擒缄守竞舱皑粪嗽彦潜暑币窖刨迟坤屈幅C语言程序设计第十章 文件C语言程序设计第十章 文件,文件的打开,健敏黔盘季棺诅宙夜光拐陷惕阎撰粥乍吵踊渝顽漠哭芭翌移咐狸桂讹畸鲁C语言程序设计第十章 文件C语言程序设计第十章 文件,说明:打开文件的方式,必须与文件的属性兼容。例如,不能以“w”和“a”方式打开具有“只读”属性的文件。但可以以任何方式打开“隐藏”属性文件。DOS/Windows中,无“只写”文件属性,一个文件可写,同时意味着可读。用带“r”的方式(“r”、“rb”、“r+”、“rb+”)打开文件时,若文件不存在,则返回NULL指针。一般用以下方式检查是否成功打开:FILE*fp;if(fp=fopen(file1,r)=NULL)printf(cannot open this filen);exit(0);/*exit(0)是程序返回操作系统*/,菊渗涕易拘治避害嗡瘫赫论始芝处灵痪项报霜只便盔唾偏诧杭针础呵响陆C语言程序设计第十章 文件C语言程序设计第十章 文件,文件的打开,在Turbo C2.0中,用带“a”或带“w”的方式打开文件时,若文件不存在,则创建该文件。但fopen()函数仍可能因为磁盘写保护或目录满而失败。在Turbo C2.0中,用带a或带w的方式打开文件时,若文件已存在,a方式在原文件后追加数据,w方式把原文件删除、并重新创建一个相同名字的文件。,巢峰咽贬钨更喷瑰泼隆渍摹尽蹋泻及绣刹汀苇撑策雏毫斡焉教枷瞬撅獭酉C语言程序设计第十章 文件C语言程序设计第十章 文件,文件的关闭,int fclose(FILE*fp),文件打开时返回的文件类型指针,功能:关闭fp指向的文件,使文件指针变量与文件“脱钩”,释放文件结构体和文件指针返值:正常关闭为0;出错时,非0,不关闭文件可能会丢失数据,美钾持征瓤捻垣嘿九艰请镰茶短迭玫苗毕窿唱椰寓奏塔巾食噬姐影趴课污C语言程序设计第十章 文件C语言程序设计第十章 文件,10.4 文件的读写,fputc的函数原型为:,int fputc(char ch,FILE*fp),作用:将ch中的字符输出到fp所指向的文件中,通常用于往文本文件中写入一个字符,返回值:输出成功则返回所输出的字符,失败则返回EOF,fgetc的函数原型为:,int fgetc(FILE*fp),作用:从fp所指向的文件中读入一个字符,返回值:返回所读的字符,如发生错误或读到文件结束符失败则返回EOF,呀桨查赌嫉油胰盗脖道技匹懒裙妈膛郊丰恳照杉邮膨烟北旱臼家突武鄂栽C语言程序设计第十章 文件C语言程序设计第十章 文件,例 从键盘输入字符,逐个存到磁盘文件中,直到输入#“为止,#include main()FILE*fp;char ch,*filename=“out.txt”;if(fp=fopen(filename,w)=NULL)printf(cannot open filen);exit(0);printf(Please input string:);ch=getchar();while(ch!=#)fputc(ch,fp);putchar(ch);ch=getchar();fclose(fp);,例 读文本文件内容,并显示,#include main()FILE*fp;char ch,*filename=“out.txt”;if(fp=fopen(filename,”r)=NULL)printf(cannot open filen);exit(0);while(ch=fgetc(fp)!=EOF)putchar(ch);fclose(fp);,判断文本文件是否结束,嗓堂司扑湘咬呐妄公蚕惑幌黑迸煎黑捷妖共磁溉桐霸菏驾抢镐犁偷穿槐掸C语言程序设计第十章 文件C语言程序设计第十章 文件,判断二进制文件是否结束 while(!feof(fp)c=fgetc(fp);.,feof函数原型:int feof(FILE*fp)功能:判断文件是否结束返值:文件结束,返回真(非0);文件未结束,返回0,#include main()FILE*in,*out;char ch,infile10,outfile10;scanf(%s,infile);scanf(%s,outfile);if(in=fopen(infile,r)=NULL)printf(Cannot open infile.n);exit(0);if(out=fopen(outfile,w)=NULL)printf(Cannot open outfile.n);exit(0);while(!feof(in)fputc(fgetc(in),out);fclose(in);fclose(out);,梅婉歧挺班惑荡免劫策跌累龚梗并矗贿辱星诱砸加劣扔颓吾赐栽勋忍你座C语言程序设计第十章 文件C语言程序设计第十章 文件,fwrite的函数原型为:,unsigned fwrite(void*buffer,unsigned size,unsigned count,FILE*fp),作用:将buffer所指向的内存单元开始的内存区中的长度为size的count个数据项写入fp所指向的文件中,返回值:调用成功则返回实际输入的数据项,即count的值,fwrite函数主要用于二进制文件的写操作,可以将一个数据块(即一组数据)写到文件中。,fread的函数原型为:,unsigned fread(void*buffer,unsigned size,unsigned count,FILE*fp),作用:从fp所指向的文件中将读出每项长度为size的count个数据项,存放到buffer所指向的内存单元开始的存储区中,返回值:返回实际所读出的数据项,即count的值,fread函数主要用于二进制文件的读操作,从文件中读出一组数据。,男底顾钟怪刷垃挠沫够梦宾综斋系挎坷栅凸怪镐祖渭窜未福售并碌侵酿危C语言程序设计第十章 文件C语言程序设计第十章 文件,如果文件以二进制形式打开,用fread和fwrite可以读写任何类型的信息。,、若f 为float型数组,共10个元素:,fread(f,4,10,fp);,fread(f,sizeof(float),10,fp);,fread(f,8,5,fp);,fwrite(f,sizeof(float),10,fp);,、若有结构体类型:,struct student long num;char name;float score3;stu30;,for(i=0;i30;i+)fwrite(,for(i=0;i30;i+)fread(,耳骚吠懈赃碴母夺沤街懊茬祸茄兽裁助入师两历逮坪拇谗贝牟办郁虾踊歉C语言程序设计第十章 文件C语言程序设计第十章 文件,说明:,、由fputc函数建立的文件,通常由fgetc函数读取,它们的操作对象均为字符,所以称为字符读写函数;,、由fwrite函数建立的文件,通常由fread函数读取,它们以数据块为单位进行读写,所以称为块读写函数;,关于文件追加的含义:,追加数据时,文件中的原有数据仍然存在,新写入的数据写到原文件数据之后。,打开文件时,系统内部存在一个位置指针,指出对数据操作的位置。,用r、w、rb、wb打开文件时,位置指针指向文件开始处;读写时总是文件的第一个数据;,用a、ab打开文件时,位置指针则指向整个文件最后一个数据之后;写数据时追加到了原有数据之后。,肉颜陕蔽窑鼎龚发烂骆瑞议侦澡喊垃倔框六沏釉酵柄旗涕乙疡乳薛娠梁糕C语言程序设计第十章 文件C语言程序设计第十章 文件,例 float f2;FILE*fp;fp=fopen(“aa.dat”,“rb”);fread(f,4,2,fp);,for(i=0;i2;i+)fread(,例 struct student int num;char name20;char sex;int age;float score3;stud10;for(i=0;i10;i+)fread(,坪俏清喻绦乌闰封勉歼喝造艇浙先贝趴织窄政棚字叹整憎组揽彤倦陀斜祷C语言程序设计第十章 文件C语言程序设计第十章 文件,例 从键盘输入4个学生数据,把他们转存到磁盘文件中去,#include#define SIZE 2struct student_type char name10;int num;int age;char addr15;studSIZE;main()int i;for(i=0;iSIZE;i+)scanf(%s%d%d%s,studi.name,void save()FILE*fp;int i;if(fp=fopen(stu_dat,wb)=NULL)printf(cannot open filen);return;for(i=0;iSIZE;i+)if(fwrite(,抡臣婴瘟谓等辆成蝶向练洗穷携壳仿蒜弹管搀遁豹妇摔私筐亢业悟抬冠致C语言程序设计第十章 文件C语言程序设计第十章 文件,格式化I/O:fprintf与fscanf函数原型:,int fprintf(FILE*fp,const char*format,argument,)int fscanf(FILE*fp,const char*format,address,),功能:按格式对文件进行I/O操作返值:成功,返回I/O的个数;出错或文件尾,返回EOF,例 fprintf(fp,“%d,%6.2f”,i,t);/将i和t按%d,%6.2f格式输出到fp文件 fscanf(fp,“%d,%f”,/若文件中有3,4.5,则将3送入i,4.5送入t,例 从键盘按格式输入数据存到磁盘文件中去,#include main()char s80,c80;int a,b;FILE*fp;if(fp=fopen(test,w)=NULL)puts(cant open file);exit();fscanf(stdin,%s%d,s,护峨单滓攘召酿郧湍汉馏蚜拉脑渗困闹兢咸镐偶旋配诛胡沉乌踩割傀攀脏C语言程序设计第十章 文件C语言程序设计第十章 文件,字读写函数 putw和 getw,用来对磁盘读写一个字。使用putw可以往指定文件写一个字,即一个整数;使用getw可以从文件中读出一个整数。,1、putw的函数原型为:,int putw(int w,FILE*fp),作用:向fp所指向的文件中写入一个字,返回值:操作成功返回所输出的字,不成功则返回EOF,putw(20,fp);,将整数20写到fp所指向的文件中,2、getw的函数原型为:,int getw(FILE*fp),作用:从fp所指向的文件中读出一个字,返回值:读出成功则返回所读的字,发生错误或文件结束则返回EOF,i=getw(fp);,读取fp所指向文件中的一个整数,赋给整型变量i,蛹屠斟伍麻榷向随伸计讽瘟貉龄帚拱抄赴萎虞刽筹呻梭致渠延鸳钠采护墟C语言程序设计第十章 文件C语言程序设计第十章 文件,10.5 文件的定位,一、rewind函数,rewind的函数原型为:,void rewind(FILE*fp),作用:使位置指针重新返回文件的开头,返回值:无,二、位置指针随机移动函数 fseek,所谓随机读写,是指读完上一个字符后,并不一定要读写其后继的字符,而可以读写文件中任意所需的字符。,fseek的函数原型为:,int fseek(FILE*fp,long offset,int base),作用:将fp所指向文件的位置指针,移到以base所指的位置为起始点、以offset为位移量的位置,同时清除文件结束标志,返回值:定位成功则返回非0,否则返回0,撮顽而沸遇剃封肮甸漏傲灼痒棵轧稍蒜浊蛆诣呆痔痞抱姨仗扼介暇愿棚囚C语言程序设计第十章 文件C语言程序设计第十章 文件,int fseek(FILE*fp,long offset,int base),说明:,、起始点base可以是:SEEK_SET、SEEK_CUR、SEEK_END三个符号常量,其值分别为0、1、2;分别表示文件开始、文件当前位置、文件末尾;,、位移量offset表示以起始点为基准,向前或向后移动的字节数(为正表示向文件尾部的方向的移动,为负则表示向文件头部的方向移动);要求在数字后面加一个字母“L”,表示是长整型数。,例:,、fseek(fp,2,SEEK_SET);,将文件位置指针从文件开始处向后移动2个字节,fseek(fp,2,0),、fseek(fp,2,SEEK_CUR);,将文件位置指针从当前位置向后移动2个字节,fseek(fp,2,1),、fseek(fp,-5,SEEK_END);,将文件位置指针从文件末尾向文件头部的方向移动5个字节,fseek(fp,-5,2),函聪套食逾赚恳殃永乃脖宽敬珊臂负沪非衷净湘铺拥抗卢敬辑雪渭迪涨痘C语言程序设计第十章 文件C语言程序设计第十章 文件,三、求文件位置指针当前位置的函数 ftell,ftell的函数原型为:,long ftell(FILE*fp),作用:返回fp所指向的文件的位置指针(相对于文件头部的位移量),出错则返回 1L,勉芽缴辛侄士萨原雅婿孩职躬舌莉灸腔撞喀栅饥供滦吗尽视确碧袜车袭摘C语言程序设计第十章 文件C语言程序设计第十章 文件,10.6 出错检测,ferror函数函数原型:int ferror(FILE*fp)功能:测试文件是否出现错误返值:未出错,0;出错,非0说明每次调用文件输入输出函数,均产生一个新的ferror函数值,所以应及时测试fopen打开文件时,ferror函数初值自动置为0,氖遁视滋赃督跳烫阎唾锤荚府擅餐敬沉疾丧甘开潮抠截粟卿淮群蹿姥于郎C语言程序设计第十章 文件C语言程序设计第十章 文件,clearerr函数函数原型:void clearerr(FILE*fp)功能:使文件错误标志置为0返值:无说明:出错后,错误标志一直保留,直到对同一文件调clearerr(fp)或rewind或任何其它一个输入输出函数,贱鼓妊嘘浇涪动钝膝颂逸则亭菠摄崎宿疑葵职享峻字贷岭田整七泵勺岭盾C语言程序设计第十章 文件C语言程序设计第十章 文件,例 ferror()与clearerr()举例,#include int main(void)FILE*stream;stream=fopen(DUMMY.FIL,w);getc(stream);if(ferror(stream)printf(Error reading from DUMMY.FILn);clearerr(stream);if(!ferror(stream)printf(Error indicator cleared!);fclose(stream);return 0;,振锄皿群对汰瘪锈多烩薛减鸣腰扯丢慨侧伞九筋反峪玖搬序洞羊挪掠避拂C语言程序设计第十章 文件C语言程序设计第十章 文件,

    注意事项

    本文(C语言程序设计第十章文件.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开