电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPTX文档下载
分享到微信 分享到微博 分享到QQ空间

C语言程序设计教程(第4版)_第10章_文件

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

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

C语言程序设计教程(第4版)_第10章_文件

C语言程序设计教程(第4版),第10章 文件,李丽娟 2013年2月,本章主要内容,1.能够建立新文件和更新文件内容,2.能够从顺序文件中读取数据,3.了解对文件进行操作的步骤,4.熟悉对顺序文件进行操作的方式,5.了解对随机文件进行操作的方式,6.了解对文件的低级读写操作,第10章 文件操作,10.1 文件的概念,文件就是记载在外部存储器上的数据的集合。C语言把这些数据的集合看成是字符(或字节)序列。 (或者说C语言是把每一个文件都看作是一个有序的字节流),计算机可处理的文件:源程序,图形文件、音频文件、数据文件等等。按数据的组织形式可分为:文本文件、二进制文件C语言可以对文本文件和二进制文件进行读写操作。,流是文件和程序之间通讯的通道,程序可以创建文件和对文件内容进行更新、修改。程序中所需的数据也可以从另一个文件中获得。,10.2 文件的操作,对文件的操作方式 1.缓冲文件系统(或称为标准I/O ) 2.非缓冲文件系统(或称为系统I/O )缓冲文件系统会自动地在内存中开辟一个文件缓冲区, 对文件进行处理时, 通过文件缓冲区进行输入/输出操作。非缓冲文件系统不设置缓冲区,由程序设置缓冲区的大小。,10.2 文件的操作,10.2.1 文件的打开与关闭文件指针:用于对文件进行操作。 文件指针的类型为结构类型,已由系统定义。 类型名为FILE(在头文件stdio.h中),定义形式如下:,typedef struct short level; /* fill empty level of buffer */ unsigned flags; /* File status flags */ char fd /* File descriptor */ unsigned char hold; /* ungetc char if no buffer */ short bsize; /* Buffer size unsigned char *buffer; /* Data transfer buffer */ unsigned char *curp; /* Current active pointer */ unsigned istemp; /* Temporary file indicator */ short token; /* Used for validity checking */FILE; /* This is the FILE object */,10.2 文件的操作,10.2.1 文件的打开与关闭文件操作之前必须要先定义文件指针变量。 定义形式:FILE *; 如:FILE *fp; 则:fp 为指向 FILE 类型结构体的指针变量。文件操作步骤:打开文件对文件进行读/写操作关闭文件文件打开函数原型 FILE *fopen (char *filename, char *type); (注:filename代表的是一个文件名,该字符串可以是一个合法的带有路径的文件名; type字符串代表的是对文件的操作模式,不同的模式对应不同的操作。)常用的文本文件打开模式有6种,r 以只读方式打开一个文本文件w 以只写方式打开一个文本文件a 以追加方式打开一个文本文件r+ 以读/写方式打开一个文本文件w+ 以读/写方式建立一个新的文本文件a+ 以读/写方式打开一个文本文件,常用的文件的操作模式,rb 以只读方式打开一个二进制文件 wb 以只写方式打开一个二进制文件 ab 以追加方式打开一个二进制文件 rb+ 以读/写方式打开一个二进制文件 wb+ 以读/写方式建立一个新的二进制文件 ab+ 以读/写方式打开一个二进制文件,注:并不是所有的C语言系统都具备以上文件操作模式,与编译器有关。,10.2 文件的操作,如有:FILE *fp; fp=fopen(“文件名”, “打开模式”);作用:打开由“文件名”指定的文件,以指定的“使用方式”对文件进行访问。若正确,则返回一个指向该文件的指针。若错误,则返回错误标志NULL。当 fp 指向某一具体的文件后,可通过该文件变量的成员信息访问文件的其它属性。【例10-1】 了解文件正确的打开方式。(分析和讨论), C语言规定:fopen()函数中的“文件名”可以在当前工作目录(相对路径)下;也可以在指定路径(绝对路径)下。如: fopen(“myfile.c", "r"); fopen("c:DOSconfig.sys", "r");,讨论,1. 文件“test.txt”所在位置如何?2. 在程序结束之前并没有关闭被打开的文件,文件会不会遭到破坏?3. 文件test.txt的内容是什么?,10.2 文件的操作,10.2.2 文件操作的错误检测文件操作的错误检测体现在两个地方 1.对文件的打开状态进行正确性判断; 2. 对文件进行读写操作进行正确性判断。 C语言提供了两个文件检测函数 1判断文件流上是否有错 int ferror(FILE *stream); 若正确,返回值为0,若发生错误,返回值为非零值。 2判断是否到达文件尾 int feof(FIEL *stream); 若stream所指向的文件到达文件尾,则返回值为非零值,否则,返回值为0。,10.2 文件的操作,10.2.3 文件的顺序读写顺序读写是指文件被打开后,按照数据流的先后顺序对文件进行读/写操作.每读/写一次后,文件指针自动指向下一个读/写位置。通过调用系统函数实现对文件的读/写操作,系统函数的声明stdio.h中。,常用的顺序读写函数从文件读一个字符:fgetc(FILE *stream); 若正确:返回字符ch 若错误或到达文件尾:返回EOF 向文件写一个字符:char fputc(char ch,FILE *stream); 若正确:返回一个非负数 若错误:返回EOF 分析【例10-2】 编写一个程序,将当前目录下的文本文件输出到屏幕上。 分析【例10-3】 编写一个程序,把从键盘输入的内容保存到文件中去。,10.2 文件的操作,常用的顺序读写函数2.从文件中读取字符串:char *fgets(char *string,int n,FILE *stream); 作用:从stream所指的文件中读取n1个字符,放到以string为起始地址的存储空间,若在n1个字符前,遇到回车换行符或文件结束符,则操作结束,并在读入的字符串后面加一个“0”字符。 若操作成功,返回值为str的地址; 若出错,返回值为NULL。 向文件写入字符串:int fputs(char *str,FILE *stream) ; 作用:将stream所表示的字符串内容(不包含字符串最后的“0”)输出到str所指的文件中去. 若操作成功,返回一个非负数; 若出错,返回EOF。 分析【例10-4】 分析【例10-5】,10.2 文件的操作,常用的顺序读写函数3.按格式化读取字符: int fscanf (FILE *stream, char *format , 分析【例10-6】 分析【例10-7】,10.2 文件的操作,10.2.4 文件的随机读写对文件进行读写操作时,可以对文件中指定位置的信息进行读写操作。需要对文件进行准确定位,再对文件进行随机读写。适合于具有固定长度记录的文件。系统提供的随机读写的定位函数原型在stdio.h中。,10.2 文件的操作,1文件定位函数原型 int fseek(FILE *stream,long offset, int position);如:fseek(fp, d, pos);作用:把文件指针fp移动到距pos为d个字节的地方。若定位成功,返回值为0;若定位失败,返回非零值。d为位移量,d的取值有以下两种情况: d>0,表示fp向前(向文件尾)移动; d<0,表示fp向后(向文件头)移动。pos为起始位置, pos的取值有以下3种可能的情况: pos=0或pos=SEEK_SET,表示文件指针在文件的开始处; pos=1或pos=SEEK_CUR,表示文件指针在当前文件指针位置; pos=2或pos=SEEK_END,表示文件指针在文件尾。,10.2 文件的操作,2位置函数原型 long int ftell(FILE *stream); 如:loc =ftell(fp);作用:将fp所指位置距文件头的偏移量的值赋予长整型变量loc。若正确,则loc0;若出错,则loc=1L3重定位函数原型 void rewind(FILE *stream); 如:rewind(fp);作用:将文件指针fp重新指向文件的开始处。,10.2 文件的操作,文件随机读写函数:int fread (void *buf, int size, int count, FILE *stream); 作用:从stream所指的文件中读取count个数据项,每一个数据项的长度为size个字节,放到由buf所指的块中(buf通常为字符数组)。读取的字节总数为size×count。 若成功,返回值为数据项数(count的值); 若出错或到达文件尾,返回值小于count。int fwrite (void *buf, int size, int count, FILE *stream); 作用:将count个长度为size的数据项写到stream所指的文件流中去。 若成功,返回值为数据项数(count的值); 若出错,则返回值小于count。分析【例10-8】分析【例10-9】,1. 文件流的概念2. 顺序读写函数 fgetc( ), fgets( ), fscanf ( ) fputc( ), fputs( ), fprintf( )3. 文件定位函数 fseek(); ftell(); rewind();4. 随机读写函数 fread( ), fwrite( ),本章重点,习 题,一、单选题二、判断题三、填空题四、程序填空题五、编程题【题10.34】 【题10.35】 【题10.36】 【题10.37】 【题10.39】 【题10.40】 【题10.44】,全部,

注意事项

本文(C语言程序设计教程(第4版)_第10章_文件)为本站会员(飞***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

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




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.