《文件操作》课件ppt课件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实际上是建立文件的各种有关信息,并 使文件指针指向该文件,以便进行其它操 作。 • 关闭文件
断开指针与文件之间的联系,也就禁止 再对该文件进行操作。
13.3 文件的打开与关闭
• 文件打开函数fopen
– 函数原型 FILE *fopen(char * *mode); – 参数说明
• :要打开的文件路径 • mode :打开模式
a+ 读写,创建或打开,在已有文件末尾追加
t 按文本方式打开 (缺省)
b 按二进制方式打开
13.3 文件的打开与关闭
• 文件的打开举例
FILE *fp1, *fp2, *fp3; char [ ]=""; /* 以文本只读方式打开file1 */ if (!(fp1=fopen("file1", "r"))) {
• 注意
– 不要在同一个程序内混合使用这两种文件的处理方法。 因为它们调用文件的方式不同,有可能相互干扰。
– 由于C对文件的操作是字节,所以可以每次读/写1个字 节,则读/写512个字节就需要512次启动外设的读写操 作;但是,缓冲文件系统先将要读/写的数据放入缓冲 区,装满了以后再启动外部设备的读/写操作。因此, 读/写512字节,只需要启动一次外设,而不是512次。
– 按数据存储方式,分为:文本文件和二进制文 件。
13.1 文件的概述
• 普通文件:一般指源文件、目标文件、可执行文件;也可 以是一组待输入处理的原始数据,或者是一组输出的结果。 对于源文件、目标文件、可执行程序可以称作程序文件, 对输入输出数据可称作数据文件。
• 数据文件:用户数据。如未做特殊说明,本章中的文件指 的是数据文件。
13.2 文件类型指针
每一个要操作的文件,都必须定义一个指针变量,并使它指向该 文件结构变量,该指针叫文件类型指针。于是可通过该指针找到被操 作文件的描述信息,进而对其进行读写。
FILE 结构类型的格式,各个编译系统有微小的区别,大致如下:
typedef struct { short level;
printf("Cannot Open This File!\n"); exit(0); /* 退出程序 */ } fp2=fopen("C:\\HOME\\", "rb+"); /* 以二进制读写方式打开 */ fp3=fopen(, "a+b"); /* 以二进制读写方式打开 */
13.3 文件的打开与关闭
• 设备文件:是指与主机相联的各种外部设备,如显示器、 打印机、键盘等。在操作系统中,把外部设备也看作是一 个文件来进行管理,把它们的输入、输出等同于对磁盘文 件的读和写。 通常把显示器定义为标准输出文件,在屏 幕上显示信息就是向标准输出文件输出信息。
13.1 文件的概述
• 文本文件:也称为ASCII文件,这种文件在磁盘中 存放时每个字符占用一个字节,用于存放对应的 ASCII码。 十进制数5678,在内存中的存储形式为 00010110 00101110(二进制形式),只占2个字 节,如果按ASCII形式输出,则占4个字节。
13.2 文件类型指针
• 定义说明文件指针格式 FILE* 指针变量标识符;
例如:FILE *fp; 表示fp是指向FILE结构的指针变量,通
过fp即可找存放某个文件信息的结构变量, 然后按结构变量提供的信息找到该文件, 实施对文件的操作。
13.3 文件的打开与关闭
C语言程序中,文件在进行读/写操作之 前要先打开,使用完毕要关闭。 • 打开文件
13.2 文件类型指针
• 文件类型指针 是指向描述文件信息结构体的结构体变量,用于文件操作。 在C语言中,对普通数据文件的所有操作都必须依靠文件类型指
针来完成。要想对文件进行操作,首先必须将想要操作的数据文件与 文件指针建立联系,然后通过这些文件指针来操作相应的文件。
C语言程序可同时处理多个文件,为了对每个文件进行有效的管 理,就需要开辟一个“文件信息描述区”,记录文件的当前状态(文 件名、文件大小等)。该信息描述区是用一个结构变量来命名和记录 实现的。该结构变量名叫文件结构变量。文件结构变量的类型由系统 定义,并取名为FILE。它通常被存放在<stdio.h>头文件中。
C
主要内容源自文库
13.1 文件概述 13.2 文件类型指针 13.3 文件的打开与关闭 13.4 文件的读写 13.5 文件的定位 13.6 习题
13.1 文件的概述
• 文件的概念 指存储在外部介质(如磁盘等)逻辑上有
联系的数据的有序集合。 • 分类:
– 从用户的角度看,分为普通文件和设备文件两 种。
unsigned int flags; char fd; unsigned char hold; short bsize; unsigned char *buffer; unsigned char *curp; unsigned int istemp; short token; } FILE;
/*缓冲区“满”或“空”的程度 */ /* 文件代号*/ /* 文件描述符*/ /* 如无缓冲区不读取字符*/ /*缓冲区的大小*/ /*数据缓冲区首地址*/ /* 指针当前位置(下一个待处理字节地址)*/ /* 临时文件指示器*/ /* 用于有效性检查*/ /* 自定义的类型名*/
• 二进制文件是按二进制的编码方式来存放文件的。
13.1 文件的概述
• 缓冲文件系统 文件中的数据是从内存中传送到外部介
质中的,缓冲文件系统自动在内存区开辟 一个缓冲区,使数据输入输出都先放到缓 冲区,等缓冲区放满时,再输出到设备上。
13.1 文件的概述
• 非缓冲文件系统
系统不自动开辟确定大小的缓冲区,而是由程 序员为每个文件设定一个缓冲区。新的ANSI C标 准不提倡使用“非缓冲文件系统”。
– 返回值
• 若成功,返回指向被打开文件的指针 • 若出错,返回空指针NULL(0)
13.3 文件的打开与关闭
• 文件的打开模式
打开模式
描述
r 只读,打开已有文件,不能写
w 只写,创建或打开,覆盖已有文件
a 追加,创建或打开,在已有文件末尾追加
r+ 读写,打开已有文件
w+ 读写,创建或打开,覆盖已有文件
相关文档
最新文档