本次课内容:文件概念、文件打开与关了、文件的顺序读写 教学目的:掌握相关)件椤念, 关闭函数、指针操作定 义、顺序文件读写函卷。 重点:相关文件概、件操i、八序文件操作。 难点:文件信息区、中区、文亻指针术念、定义及各函数应用 预习: 字符和字符串操伫数 标准输入输出设
本次课内容:文件概念、文件打开与关闭、文件的顺序读写 教学目的:掌握相关文件概念,文件打开、关闭函数、指针操作定 义、顺序文件读写函数及应用。 重点:相关文件概念、文件操作函数、顺序文件操作。 难点:文件信息区、缓冲区、文件指针概念、定义及各函数应用。 预习: 字符和字符串操作函数 标准输入输出设备
文件概述 1、文件的概述 文件:记录在外部介质中的数据集合。 文件分类: 按介质:磁盘文件、磁带文件、光盘文件等。 按内容:源程序、目标文件、数据文件等。 按组织形式:字符代码文件、二进制文件等。 字符代码文件:每个字符占一个字节 二进制文件:按内容中的存储形式存放。如整型点两字节。 2、标准(I/O)和系统(I/0) C语言磁盘文件系统分两大类: 1)缓冲文件系统(又称高层文件系统或标准文件系统)。 自动为文件设缓冲区 2)非缓冲文件系统(又称低层文件系统) 用户自己设置缓冲区。 缓冲区:提高数据读写速度在内容中设置的一块区域。 文件与缓冲区间关系见下页
一、文件概述 1、文件的概述 文件:记录在外部介质中的数据集合。 文件分类: 按介质:磁盘文件、磁带文件、光盘文件等。 按内容:源程序、目标文件、数据文件等。 按组织形式:字符代码文件、二进制文件等。 字符代码文件:每个字符占一个字节。 二进制文件:按内容中的存储形式存放。如整型点两字节。 2、标准(I/O)和系统(I/O) C语言磁盘文件系统分两大类: 1) 缓冲文件系统(又称高层文件系统或标准文件系统)。 自动为文件设缓冲区。 2) 非缓冲文件系统(又称低层文件系统) 。 用户自己设置缓冲区。 缓冲区:提高数据读写速度在内容中设置的一块区域。 文件与缓冲区间关系见下页
缓冲文件系统特点:对程序中的每一个文件都在内存中开辟一个 “缓冲区”。 内存 磁盘文件 a输入(出坟文 件缓冲区 程序数据区 读写文件数据的函数见表91 fgetc、 fputc、 fgets、 fputs、 fscanf、 fprintf 3、文件(FIE类型指针 FILE:是文件类型名,是一个由系统定义的结构体类型,各成员 为文件操作所需信息。 文件信息(区):读写位置、内存缓冲区地址、缓冲区未处理字符 数、文件操作方式等。 “文件信息区”在内存中是一个结构体变量。 对FLE的定义是在 stdio. h头文件中由系统事先指定的。 只要程序用到一个文件,系统就为此文件开辟一个如上的结构体变 量
缓冲文件系统特点:对程序中的每一个文件都在内存中开辟一个 “缓冲区”。 读写文件数据的函数见表9.1。 fgetc、fputc、fgets、fputs、fscanf、fprintf。 3、文件(FILE)类型指针 FILE:是文件类型名,是一个由系统定义的结构体类型,各成员 为文件操作所需信息。 文件信息(区):读写位置、内存缓冲区地址、缓冲区未处理字符 数、文件操作方式等。 “文件信息区”在内存中是一个结构体变量。 对FILE的定义是在stdio.h头文件中由系统事先指定的。 只要程序用到一个文件,系统就为此文件开辟一个如上的结构体变 量。 a 程序数据区 输入(出)文 件缓冲区 磁盘文件 内存
定义指针变量 sp FILE *fptl, *fpt2, *fpt3 t,皮件的信息ip2,文件2的信息ft3.反件3的信息 区(结构体 区(结构体 区(结构体 变量) 变量) 变量) FILE是文件类型指针,所定义的指针变量都是指向文件的。即指 向文件的信息区(文件信息区在内存中是一个结构体变量)。 定义格式:FDE*文件结构体指针变量名表; 文件的打开与关闭 文件的打开 打开:在程序和操作系统之间建立联系 格式: fopen(“文件名”,“文件使用方式”); 如: fopen(“flel”;r”); 文件使用方式:r:只读、w:只写、a:追加 b:二进制文件+:读写 r、w、a可以与b、+结合,如rb+
定义指针变量: 如:FILE *fpt1,*fpt2,*fpt3; FILE是文件类型指针,所定义的指针变量都是指向文件的。即指 向文件的信息区(文件信息区在内存中是一个结构体变量)。 定义格式: FILE * 文件结构体指针变量名表; 二、文件的打开与关闭 1、文件的打开 打开:在程序和操作系统之间建立联系。 格式:fopen (“文件名”,“文件使用方式”); 如: fopen ( “file1”,”r”); 文件使用方式:r :只读、w:只写、 a:追加 b :二进制文件 + :读写 r、w、a 可以与 b 、+ 结合,如 rb+。 文件1的信息 区(结构体 变量) 文件3的信息 区(结构体 变量) 文件2的信息 区(结构体 变量) fpt1 fpt2 fpt3
fopen函数返回值是一个地址(被打开文件的信息区) NULL:返回值为0,即读时文件不存在,或写时磁盘满 打开文件时,程序通知编译系统三个方面的信息: 1)要打开哪一个文件;2)对文件的使用方式;3)函数的返回值赋给 哪一个指针变量。 文件名 c程序文件使用操作 方式系统 磁盘 指向文件 的指针 文件打开方法: if(fp= fopen(“flel,"r”)==NULL { printf(“ cannot open this file n”); eX exit(01:正常退出;exit(1):出错退出(括号内非零)
fopen函数返回值是一个地址(被打开文件的信息区)。 NULL:返回值为0,即读时文件不存在,或写时磁盘满。 打开文件时,程序通知编译系统三个方面的信息: 1)要打开哪一个文件;2)对文件的使用方式;3)函数的返回值赋给 哪一个指针变量。 文件打开方法: if ((fp=fopen(“file1”,”r”))==NULL) { printf(“cannot open this file \n”); exit(0); } exit(0):正常退出;exit(-1):出错退出(括号内非零)。 C程序 操作 系统 磁盘 文件名 文件使用 方式 指向文件 的指针