第10章文件(白羽)

上传人:平*** 文档编号:46086071 上传时间:2018-06-22 格式:PPT 页数:73 大小:1.64MB
返回 下载 相关 举报
第10章文件(白羽)_第1页
第1页 / 共73页
第10章文件(白羽)_第2页
第2页 / 共73页
第10章文件(白羽)_第3页
第3页 / 共73页
第10章文件(白羽)_第4页
第4页 / 共73页
第10章文件(白羽)_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《第10章文件(白羽)》由会员分享,可在线阅读,更多相关《第10章文件(白羽)(73页珍藏版)》请在金锄头文库上搜索。

1、江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_第十章第十章 文件文件本章学习重点:本章学习重点: 文件的基本概念文件的基本概念 文件的打开、关闭文件的打开、关闭 文件的读写文件的读写 文件的定位、文件的检测文件的定位、文件的检测江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_本章目录本章目录第二十五讲第二十五讲 文件概述、文件打开与关闭文件概述、文件打开与关闭 第二十六讲第二十六讲 文件读写文件读写 第二十七讲第二

2、十七讲 文件的定位和文件的检测文件的定位和文件的检测 本章小结本章小结结束江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_第二十五讲第二十五讲 文件概述、文件打开与关闭文件概述、文件打开与关闭【思考题【思考题10-110-1】 如果我们需要将程序运行结如果我们需要将程序运行结 果存放到外存时,应该用什么方法存储呢果存放到外存时,应该用什么方法存储呢 ?应该怎样读入数据或存储数据呢?应该怎样读入数据或存储数据呢? (一一)程序分析程序分析 我们如果要将一个字符串我们如果要将一个字符串“This is a C

3、 “This is a C program.“program.“存放到一个文件中存放到一个文件中,应该怎么设,应该怎么设 计程序呢?请看下例。计程序呢?请看下例。返回到本章目录江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_(二二)编写程序代码)编写程序代码 #include #include main()main() FILE *fp; FILE *fp;fp=fopen(“file1.txt“,“w“); fp=fopen(“file1.txt“,“w“);fprintf(fp,“This is a

4、C program.“); fprintf(fp,“This is a C program.“);fclose(fp); fclose(fp); 返回到本章目录江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_(三三)调试运行程序调试运行程序 在这个程序中,在这个程序中,建立了一个名为建立了一个名为“file1.txt“file1.txt“的的 文件,并将字符串文件,并将字符串“This is a C program.“This is a C program.“ 通过通过fprintffprintf函数输出

5、到文件中保存起来。函数输出到文件中保存起来。同同 理,也可以用理,也可以用fscanffscanf函数从文件函数从文件“file1.txt“file1.txt“ 中输入该内容。该程序在屏幕上没有输出中输入该内容。该程序在屏幕上没有输出 信息。信息。返回到本章目录江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_文 件在程序运行时,程序本身和数据一般都 存放在内存中。当程序运行结束后,存放 在内存中的数据被释放。如果需要长期保存程序运行所需的原始 数据,或程序运行产生的结果,就必须以 文件形式存储到外部存储介

6、质上。江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_1文件与文件名文件是指存放在外部存储介质上的数据集合。 为标识一个文件,每个文件都必须有一个文件 名,其一般结构为:主文件名.扩展名 操作系统通过文件名和数据发生联系,从而 实现对数据的管理。2文件分类 可以从不同的角度对文件进行分类: (1)根据文件的内容,可分为程序文件和数 据文件,程序文件又可分为源文件、目标文件和可 执行文件。 (2)根据文件的组织形式,可分为顺序存取 文件和随机存取文件。一C文件概述江西信息应用职业技术学院江西信息应用职业技术

7、学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_(3)根据文件的存储形式,可分为ASCII码文件和 二进制文件。ASCII码文件的每1个字节存储1个字符,因而便于 对字符进行逐个处理。但一般占用存储空间较多,而且要 花费转换时间(二进制与ASCII码之间的转换)。 二进制文件是把内存中的数据,原样输出到磁盘文 件中。可以节省存储空间和转换时间,但1个字节并不对 应1个字符,不能直接输出字符形式。3读文件与写文件 所谓读文件是指,将磁盘文件中的数据传送到计算 机内存的操作。 所谓写文件是指,从计算机内存向磁盘文件中传送 数据的操作。江西信息应用职业技

8、术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_4构成文件的基本单元与流式文件 语言将文件看作是由一个一个的字符( ASCII码文件)或字节(二进制文件)组成的。将 这种文件称为流式文件。 而在其它高级语言中,组成文件的基本单位是 记录,对文件操作的基本单位也是记录。 5文件类型FILE 系统给每个打开的文件都在内存中开辟一个区 域,用于存放文件的有关信息(如文件名、文件位 置等)。这些信息保存在一个结构类型变量中,该 结构类型由系统定义、取名为FILE。 注意:结构类型名“FILE”必须大写。江西信息应用职业技术学院江西

9、信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_6ANSI C的缓冲文件系统 所谓缓冲文件系统是指,系统自动地 在内存区为每个正在使用的文件开辟一个 缓冲区。 从内存向磁盘输出数据时,必须首先 输出到缓冲区中。待缓冲区装满后,再一 起输出到磁盘文件中。 从磁盘文件向内存读入数据时,则正 好相反:首先将一批数据读入到缓冲区中 ,再从缓冲区中将数据逐个送到程序数据 区。江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_二 文件指针在语言中用一个指针变

10、量指向一个文件 ,这个指针称为文件指针。通过文件指针就可对它所 指向的文件进行各种操作。定义说明文件指针的一般形式为:FILE * 指针变量标识符; 其中FILE应为大写,它实际上是由系统定义的 一个结构,该结构中含有文件名、文件状态和文件当 前位置等信息。在编写源程序时一般不必关心FILE结 构的细节。 例如:FILE *fp; 表示fp是指向FILE结构的指针变量,通过fp即 可找到存放某个文件信息的结构变量,然后按结构变 量提供的信息找到该文件,实施对文件的操作。习惯 上也笼统地把fp称为指向一个文件的指针。江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email

11、:Dengliping_Email:Dengliping_该变量的结构体类型由系统取名为FILE,在头文件stdio.h中定 义如下: typedef struct short level;/*缓冲区“满”或“空”的程度*/ unsigned flags;/* 文件状态标志*/ char fd;/* 文件描述符*/ unsigned char hold;/*如无缓冲区不读取字符*/ short bsize; /* 缓冲区大小 */ unsigned char *buffer;/* 数据传输缓冲区 */ unsigned char *curp;/* 当前激活指针 */ unsigned iste

12、mp;/* 临时文件指示器 */ short token; /* 用于合法性校合 */ FILE; 在操作文件以前,应先定义文件变量指针: FILE *fp1,fp2;按照上面的定义,fp1和fp2均为指向结构体类型的指 针变量,可以分别指向一个可操作的文件。换句话说,一个文件有一 个文件变量指针,今后对文件的访问,就转化为针对文件变量指针的 操作。江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_对文件进行操作之前,必须先打开该文件; 使用结束后,应立即关闭,以免数据丢失。 语言规定了标准输入输出函数库,

13、用 fopen()函数打开一个文件,用fclose()函数关闭 一个文件。 使用以下函数时,源程序中一定用# include 一.文件的打开fopen()函数1调用形式: FILE *fp;fp=fopen(文件名,文件的使用方式);2功能:返回一个指向指定文件的指针。三 文件的打开与关闭江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_说明: 对文件进行操作,首先必须先打开文件,打开文 件使用函数 fopen(); FILE用来定义指向文件的指针变量; “文件名”是指要打开(或创建)的文件名,用“” 。如

14、果使用字符数组(或字符指针),则不使用双引 号。 fopen将打开的文件的地址赋给文件指针,其与 打开的文件建立关系。以后可以通过fp来完成对文件 的操作。 文件的使用方式是指对文件进行读、写或追加等 操作。具体含义如表10.1所示。 如果文件打开失败则返回空指针:即 fp=NULL;FILE *fp;FILE *fp; fp=fopen(“c:userabc.txt“,“w“);fp=fopen(“c:userabc.txt“,“w“);P255 一、2江西信息应用职业技术学院江西信息应用职业技术学院* *计算机系计算机系Email:Dengliping_Email:Dengliping_表

15、表10-1 10-1 fopenfopen函数中的文件使用方式函数中的文件使用方式文件使用方式含 义说 明“r“(只读)打开文本文件,只读如果指定文件不存在,则出错“w“(只写)打开文本文件,只写新建一个文件,如果指定文件已存在,则删除它,再新建“a“(追加)打开文本文件,追加如果指定文件不存在,则创建该文件“rb“(只读)打开二进制文件,只读如果指定文件不存在,则出错“wb“(只写)打开二进制文件,只写新建一个文件,如果指定文件已存在,则删除它,再新建“ab“(追加)打开二进制文件,追加如果指定文件不存在,则创建该文件“r+“(读写)打开文本文件,读、写如果指定文件不存在,则出错“w+“(读写)打开文本文件,读、写新建一个文件,如果指定文件已存在,则删除它,再新建“a+“(读追加)打开文本文件,读、追加如果指定文件不存在

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号