欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机操作系统复习资料-第9章.ppt

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

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

    计算机操作系统复习资料-第9章.ppt

    C语言程序设计第9章 文件系统1 1C语言程序设计本章学习内容v文件的基本知识vC语言中文件的使用方法v文件的打开/关闭v文件的读/写v文件指针的定位v文件出错的检测文件的操作2 2C语言程序设计本章学习目标v掌握文件的基本知识 v掌握文件类型指针的使用方法 v掌握文件打开/关闭的方法 v掌握文件读/写的一般方法 v了解文件定位v了解文件出错检测方法3 3C语言程序设计1.文件的基本知识next partv基本概念:文件、流v文件的分类 gogo4 4C语言程序设计v基本概念:文件、流return(1)文件(2)流如果文件中的数据是以字节为单位顺序组织的,则把这类文件称为流式文件,简称流。存储在外部存储介质上的数据集合 操作系统通过文件名(包括路径)对数据进行管理5 5C语言程序设计v文件的分类return 对于流式文件,按照数据的存储形式分:(1)文本文件:每个字符占一个字节,以ASC码存储(2)二进制文件:数据按其在内存中的存储形式原样存放到文件中图示说明6 6return 例:int型数 10000内存中存储形式00100111 00010000在二进制文件中数据的存储形式00100111 0001000000110001 00110000 00110000 00110000 00110000在ASC码文件中数据的存储形式(1)(0)(0)(0)(0)特点:便于对字符操作;存储量大、速度慢特点:存储量小、速度快、便于存放中间结果7 7C语言程序设计2.C语言中文件的使用方法next partC语言中借助文件类型指针和一组标准库函数来实现对文件的操作。(1)文件类型FILE(2)文件类型指针(3)说明gogogo8 8C语言程序设计(1)文件类型FILEreturn 缓冲文件系统为每个正使用的文件在内存开辟文件信息区 文件信息用系统定义的FILE类型的结构体变量描述 FILE定义在stdio.h中结构体类型FILE的定义9 9typedef struct shortlevel;unsigned flags;charfd;unsigned char hold;shortbsize;unsigned char*buffer;unsigned char*curp;unsignedistemp;shorttoken;FILE;return/*fill/empty level of buffer*/*文件状态标志 */*文件描述符 */*Ungetc char if no buffer*/*缓冲区大小*/*数据传输缓冲区*/*当前激活指针*/*临时文件指示器*/*用于合法性校合*/1010C语言程序设计(2)文件类型指针return c语言中通过定义文件类型指针来操作文件。具体过程如下:定义文件类型指针 FILE*fp;按指定方式打开文件,使fp和文件建立关联 通过fp对文件进行读写等操作 关闭文件,断开fp和文件的关联文件名文件使用方式文件类型指针C程序操作系统磁盘1111C语言程序设计(3)说明return C程序在启动时会自动创建三个文件指针,并使之与标准设备文件建立关联:文件指针stdin 与标准输入设备(键盘)关联 文件指针stdout 与标准输出设备(显示器)关联 文件指针stderr 与标准输出设备(显示器)关联1212C语言程序设计3.文件的操作next partv打开/关闭v读/写v定位v错误检测gogogogo1313C语言程序设计return v打开/关闭(1)fopen()(2)fclose()函数原型 函数原型 实例 1414关闭fp所指向的文件;若有错,返回非0;否则返回0return FILE*fopen(const char*filename,const char*mode);(1)fopen()以参数mode指定的方式打开参数filename指定的文件。若成功,返回一个文件指针,指向该文件;否则,返回NULL(即0)文件打开方式(2)fclose()int fclose(FILE*fp);调用时,实际参数可以是:字符串常量、字符数组名、字符指针1515return 文件使用方式含义“r”/”rb”(只读)为输入打开一个文本/二进制文件“w”/”wb”(只写)为输出打开或建立一个文本/二进制文件“a”/”ab”(追加)向文本/二进制文件尾追加数据“r+”/”rb+”(读写)为读/写打开一个文本/二进制文件“w+”/”wb+”(读写)为读/写建立一个文本/二进制文件“a+”/”ab+”(读写)为读/写打开或建立一个文本/二进制文件P293:表9-11616return#include int main()FILE*fp;fp=fopen(roll.xls,w);fclose(fp);return 0;if(fp=NULL)printf(cannot open roll.xlsn);exit(0);#include 1717C语言程序设计return v读/写(1)fgetc()、fputc()(2)fgets()、fputs()(3)fscanf()、fprintf()(4)fread()、fwrite()(5)feof()go go go go go 1818return fgetc()int fgetc(FILE*fp);int fputc(char ch,FILE*fp);从fp指向的文件中读取一个字符。若读取成功,则返回读入的字符的ASC码;否则,返回EOF(即-1)将参数ch中的字符输出到fp指向的文件。若成功,则返回该字符的ASC码;否则返回EOF(即-1)fputc()实例 1919return fgetc()和fputc()使用实例:例1:从键盘输入字符存到文件a.txt中,直到输入#为止例2:把文件a.txt的内容显示到屏幕上例3:把文件a.txt的内容拷贝到文件b.txt中go go go 2020return 例1:从键盘输入字符存到文件a.txt中,直到输入#为止#include#include int main()FILE*fp;char ch;if(fp=fopen(a.txt,w)=NULL)printf(cannot open filen);exit(0);从键盘输入字符并存入文件a.txt fclose(fp);return 0;打开或创建磁盘文件关闭文件printf(Please input string:);ch=getchar();while(ch!=#)fputc(ch,fp);ch=getchar();2121return 例2:把文件a.txt的内容显示到屏幕上#include#include int main()FILE*fp;char ch;if(fp=fopen(a.txt,r)=NULL)printf(cannot open filen);exit(0);从文件a.txt中读入内容并显示在屏幕上 fclose(fp);return 0;while(ch=fgetc(fp)!=EOF)putchar(ch);ch=fgetc(fp)ch!=EOF2222return 例3:把文件a.txt的内容拷贝到文件b.txt中#include#include int main()FILE*in,*out;if(in=fopen(a.txt,r)=NULL)printf(Cannot open a.txt.n);exit(0);if(out=fopen(b.txt,w)=NULL)printf(Cannot open b.txt.n);exit(0);把文件a.txt拷贝到b.txt fclose(in);fclose(out);return 0;while(!feof(in)fputc(fgetc(in),out);2323return fgets()fputs()char*fgets(char*buf,int n,FILE*fp);int fputs(char*str,FILE*fp);从fp指向的文件读取长度不超过n-1的字符串,存入buf指向的空间若成功,则返回buf;否则,返回NULL将str指向的字符串输出到fp指向的文件。若成功,返回0;否则返回非零 实参可以是:字符数组名、字符指针实参可以是:字符串常量、字符数组名、字符指针char str80;fgets(str,11,fp);从fp指向的文件中读入最多10个字符到字符数组str fputs(“China”,fp);char str=“I love China!”;fputs(str,fp);char*city=“Beijing”;fputs(city,fp);2424return fscanf()fprintf()int fscanf(FILE*fp,char*format,arg_list);int fprintf(FILE*fp,char*format,arg_list);从fp指向的文件中按format指定的格式读入数据给arg_list。若读取成功,返回已输入的数据个数;否则,返回0按format指定的格式把arg_list的数据输出到fp指向的文件。若成功,返回输出数据的个数;否则返回负数实例 2525return 例1:把数据写入文件grade.txt例2:从grade.txt中把数据读出来,并在屏幕上显示go go fscanf()和fprintf()使用实例:2626#include#include int main()FILE*fp;char name=Mike;float score=90;if(fp=fopen(grade.txt,w)=NULL)printf(cannot open grade.txtn);exit(0);fprintf(fp,%st%sn,姓名,分数);fprintf(fp,%st%5.0fn,name,score);fclose(fp);return 0;return 2727return#include#include int main()FILE*fp;char name10;float score;if(fp=fopen(grade.txt,r)=NULL)printf(cannot open grade.txtn);exit(0);fscanf(fp,%*s%*s);fscanf(fp,%s%f,name,&score);printf(%st%5.0fn,name,score);fclose(fp);return 0;2828return fread()fwrite()size_t fread(void*pt,size_t size,size_t n,FILE*fp);size_t fwrite(void*pt,size_t size,size_t n,FILE*fp);从fp指向的文件中读取size*n的数据项,存入pt指向的内存区若读取成功,返回所读数据项个数;否则,返回-1将pt指向的连续n*size个字节的数据写入fp指向的文件返回写入文件中实际数据项的个数;否则,返回-1实例 说明:fread和fwrite函数一般用于二进制文件的输入输出!2929return float score5;FILE *fp;fp=fopen(aa.dat,rb);fread(score,sizeof(float),5,fp);struct studentint num;char name20;char sex;int age;float score3;struct student stu10;for(i=0;i10;i+)fwrite(&studi,sizeof(struct student),1,fp);for(i=0;i5;i+)fread(&scorei,sizeof(float),1,fp);等价!3030C语言程序设计 数据块I/O:fwrite()和 fread()vfwrite()调用形式:fwrite(buffer,size,count,fp);功能:把buffer的数据写到fp指向的文件中vfread()调用形式:fread(buffer,size,count,fp);功能:从fp指向的文件中读入数据到buffersize:每个数据项占用的字节数count:数据项的个数return说明:fread和fwrite函数一般用于二进制文件的输入输出!3131return(5)feof()int feof(FILE*fp);检查fp指向的文件是否结束。若文件结束则返回非0值;否则,返回03232C语言程序设计return v定位(1)rewind()(2)fseek()(3)ftell()go go go 说明:在FILE中有一个数据成员为位置指针,指向当前读写位置3333return(1)rewind()void rewind(FILE*fp);将fp指示的文件中的位置指针置于文件开头位置实例 3434#include#include int main()FILE*fp;fp=fopen(a.txt,r);if(fp=NULL)printf(cannot open a.txtn);exit(0);while(!feof(fp)putchar(fgetc(fp);rewind(fp);while(!feof(fp)putchar(fgetc(fp);fclose(fp);return 0;return 3535return(2)fseek()int fseek(FILE*fp,long offset,int base);将fp指示的文件中的位置指针移到以base所给出的位置为基准、以offset为位移量的位置若成功返回当前位置;否则,返回-1SEEK_SET 或 0SEEK_CUR 或 1SEEK_END 或 2 fseek(fp,100L,SEEK_SET);fseek(fp,0L,SEEK_END);把文件指针移到距离文件头100个字节处表示:把文件指针移到文件末尾3636return(3)ftell()long ftell(FILE*fp);返回fp所指向的文件的位置指针的当前值实例 3737return 例:求文件的长度#include#include int main()FILE*fp;int length;if(fp=fopen(aa.txt,r)=NULL)printf(cannot open roll.xlsn);exit(0);fseek(fp,0L,SEEK_END);length=ftell(fp);printf(length of file is%dn,length);fclose(fp);return 0;3838C语言程序设计return v错误检测(1)ferror()(2)clearerr()go go 3939return(1)ferror()int ferror(FILE*fp);若返回值为0,表示文件操作未出错;若返回非零值,表示文件操作失败。4040return(2)clearerr()void clearerr(FILE*fp);将fp所指向的文件的错误标志置为04141C语言程序设计本章小结v文件的基本知识vC语言中文件的使用方法v文件的打开/关闭v文件的读/写v文件指针的定位v文件出错的检测本章重点4242C语言程序设计本章课后任务v结合课件和教材梳理本章知识点 c程序启动时自动创建的三个流 文件中数据流的组织形式 常用函数的使用v完成本章书后习题4343

    注意事项

    本文(计算机操作系统复习资料-第9章.ppt)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开