文档介绍:第8章文件
学习内容
1 文件的概念
2 文件类型指针
3 文件的打开与关闭
4 文件的读写
5 文件的定位
6 出错的检测
语言程序设计
第八章
文
件
C
第8章:文件
语言程序设计
第八章
文
件
C
C文件概述
1. 什么是文件
文件是指存放在外部存储介质上的相关数据的有序集合。
为标识一个文件,每个文件都必须有一个文件名,
其一般结构为:主文件名[.扩展名] 文件命名规则,遵循操作系统的约定。
在C语言中,“文件”的概念被进一步扩大,把每台与主机相连的输入输出设备都看作是一个文件。即把实际的物理设备抽象为逻辑文件,它们被称为设备文件。
C文件是一个有序的数据序列(称为流式文件)。C语言把文件作为一个字符(字节)序列处理,对文件的存取是以字符(字节)为单位进行的。
语言程序设计
第八章
文
件
C
按文件存储数据的形式
ASCII文件(或称文本文件)
ASCII码文件中每个字节存放一个ASCII代码,代表一个字符,此种存储形式便于输出显示,在DOS操作系统下可以直接阅读。
二进制文件
二进制文件中的数据是按照在内存中的二进制存储格式存放的,此种存储形式节省存储单元。二进制文件在DOS操作系统下不能直接阅读。
C文件概述
2. 文件的种类
语言程序设计
第八章
文
件
C
例如将整数1949分别存储在这两种数据文件中。
ASCII文件:ASCII码
二进制文件:补码
占用4个字节
占用2个字节
文件的概述
2. 文件的种类
00110001
00111001
00110100
00111001
'1'
'9'
'4'
'9'
00000111
10011101
又称为文本文件
语言程序设计
第八章
文
件
C
文件的概述
2. 文件的种类
程序文件又可分为源文件、目标文件和可执行文件。
*.C C语言的源程序文本文件
*.OBJ 目标文件二进制文件
*.EXE 可执行文件二进制文件
语言程序设计
第八章
文
件
C
缓冲文件系统
系统处理方法是在内存中为每个正在使用的缓冲文件开辟一个缓冲区,对文件读写数据都通过缓冲区进行。
非缓冲文件系统
系统处理非缓冲文件时,不为文件开辟缓冲区,需要程序员自行设计并管理缓冲区。
83年以后ANSI C标准中取消了非缓冲文件系统,对文本文件和二进制文件均采用缓冲文件系统进行处理。
C文件概述
3. 文件的处理方式
语言程序设计
第八章
文
件
C
文件类型指针
系统给每个打开的文件都在内存中开辟一个区域,用于存放文件的有关信息(如文件名、文件位置等)。这些信息保存在一个结构类型变量中,该结构类型由系统定义、取名为FILE。
注意:结构类型名“FILE”必须大写。
Turbo :
typedef struct{
short level; /* 缓冲区满或空的程度*/
unsigned flags; /* 文件状态标志*/
char fd; /* 文件描述符*/
unsigned char hold; /* 如无缓冲区不读取字符*/
short bsize; /* 缓冲区的大小*/
unsigned char *buffer; /* 数据缓冲区的位置*/
unsigned char *curp; /* 指针当前的指向*/
unsigned istemp; /* 临时文件指示器*/
short token; /* 用于有效性检查*/
} FILE; /* 定义文件类型*/
文件指针变量的定义:
FILE *fp;
语言程序设计
第八章
文
件
C
文件打开与关闭
操作文件的一般步骤
打开文件读写文件关闭文件
打开文件:建立用户程序与文件的联系,为文件分 配一个文件缓冲区。
读写文件:是指对文件的读、写、追加和定位操作。
关闭文件:切断文件与程序的联系,释放文件缓冲区。
注意:对文件进行操作之前,必须先打开该文件;使用结束后,必须关闭。
语言程序设计
第八章
文
件
C
常用的调用形式:
FILE *fp;
fp = fopen(文件名, 文件使用方式);
文件名:需要打开的文件名称(字符串)。
文件使用方式:是具有特定含义的符号。
文件打开与关闭
文件的打开(fopen函数)
函数功能:
按指定的文件使用方式打开指定的文件。
若文件打开成功,为该文件分配一个文件缓冲区和一个
FILE类型变量,返回一个FILE类型指针;
若文件打开