
(男程扇设计在线开放课程 文件 主讲:曾志华
文件 在线开放课程 主讲:曾志华

一、C语言文件的概念 程高设计 所谓“文件”,一般指存储在外部介质上数据的集合。一批数据是 以文件的形式存放在外部介质(如磁盘)上的. C语言把文件看做是一个字符(字节)的序列,即由一个一个字符 (字节)的数据顺序组成。根据数据的组织形式,可分为ASC文件 (文本文件)和二进制文件。 例如:int型数据56,其在内存 1、二进制文件: 中以二进制形式111000需要用两个 字节存储:而ASCI文件则是把每个 以数据在内存中的形式原样存于磁盘 字符(5′和6')对应的ASCI 2、文本文件(用记事本打开能看懂没有乱码): 码值分别用一个字节存放。 每个字符用一个ASCI码存储(即一个字符占一个字节)
一、C 语言文件的概念 所谓“文件” ,一般指存储在外部介质上数据的集合。一批数据是 以文件的形式存放在外部介质(如磁盘)上的。 C语言把文件看做是一个字符(字节)的序列,即由一个一个字符 (字节)的数据顺序组成。根据数据的组织形式,可分为ASCII文件 (文本文件)和二进制文件。 1、二进制文件: 以数据在内存中的形式原样存于磁盘 2、文本文件(用记事本打开能看懂没有乱码): 每个字符用一个 ASCII码存储(即一个字符占一个字节) 例如: int型数据56,其在内存 中以二进制形式111000需要用两个 字节存储;而ASCII文件则是把每个 字符(‘5’和‘6’)对应的ASCII 码值分别用一个字节存放

一、C语言文件的概念 程疡设计 C语言中,存取数据都是按“数据流”的形式处理;C语言中的文件是 一个字节流或二进制流。即对文件的存取是以字符(字节)为单位的。 ●文件的读(输入): 从文件(硬盘)-之内存 >两种狱键盖存取方式·丙存取和直接存取(随机存取文件)。 ·顺序榜彩输地是从文件开头鞫,从头到尾顺序读写。 〉文件(硬盘 。奇接成得套逾地毁指定异郭附}置度。 对此位置上的数据进行读写操作
一、C 语言文件的概念 ➢ C语言中,存取数据都是按“数据流”的形式处理; C语言中的文件是 一个字节流或二进制流。即对文件的存取是以字符(字节)为单位的。 ➢ 两种对文件的存取方式:顺序存取和直接存取(随机存取文件)。 ➢ 在C语言中,没有输入输出语句,对文件的读写都是用库函数来实现的。 ⚫ 文件的读(输入): 从文件(硬盘)----→内存 从键盘------- -----→内存 ⚫ 文件的写(输出) 从内存---————-→文件(硬盘) 从内存--————-→显示器 ⚫顺序存取文件特点:总是从文件开头开始,从头到尾顺序读写。 ⚫直接存取文件特点:可通过库函数指定开始读写的字节号,然后直接 对此位置上的数据进行读写操作

二、文件类型指针 考程序设计 文件指针,实际上是一个结构体类型的指针变量。 即,每个被使用的文件都在内存中开辟一个区,用来存放文件有关信息(如 文件名,文件状态及文件当前位置等),这些信息保存在一个结构体变量中,该 结构体由系统定义,取名FILE(在stdio.h头文件中已定义)。 由此,可以通过结构体FLE类型定义若干 注意:当开始运行一个C程序时,系统负 LEf5]:/结构体数组f,可用来存放 责自动打开三个文件:stdin,stdout, 也可以定义文件型指针变量,使其指向某 stderr。.它们都在stdio..h头文件中进行 了说明。通常stdin和键盘联接,stdout FILE *fp;/fp是一个指向FILE类型结构 和stderr与屏幕终端联接
二、文件类型指针 文件指针,实际上是一个结构体类型的指针变量。 即,每个被使用的文件都在内存中开辟一个区,用来存放文件有关信息(如 文件名,文件状态及文件当前位置等),这些信息保存在一个结构体变量中,该 结构体由系统定义,取名FILE(在stdio.h头文件中已定义)。 由此,可以通过结构体FILE类型定义若干个变量,存放若干个文件的信息; FILE f[5]; //结构体数组f,可用来存放5个文件的信息 也可以定义文件型指针变量,使其指向某一个文件的结构体变量,访问该文件。 FILE *fp; //fp是一个指向FILE类型结构体的指针变量 注意:当开始运行一个C程序时,系统负 责自动打开三个文件:stdin, stdout, stderr。它们都在stdio.h头文件中进行 了说明。通常stdin和键盘联接,stdout 和stderr与屏幕终端联接

三、文件的打开和关闭 《身程设计 文件读写流程 定义文件类型指针 文件指针定义 打开文件 文件打开函数fopen0 对文件进行读或写 文件读写函数 关闭文件 文件关闭函数fclose0
三、文件的打开和关闭 文件指针定义 打开文件 对文件进行读或写 关闭文件 定义文件类型指针 文件读写流程 文件打开函数fopen() 文件读写函数 文件关闭函数fclose()

三、文件的打开和关闭 膏程序设 fopen(0函数实现打开文件,该函数的调用方式通常为: FILE *fp; fp=fopen(文件名,使用文件方式): 例如:fp=fopen(“temp”,“r");/注意:若打开文件失败,则返回值NULL 执行该语句后,fopeni函数返回指向名为temp文件的指针并赋给fp,从而 使文件指针变量fp指向temp文件,并设定使用文件方式为r一读入
三、文件的打开和关闭 fopen()函数实现打开文件,该函数的调用方式通常为: FILE *fp; fp = fopen(文件名,使用文件方式); 例如:fp=fopen(“temp”, “r”); //注意:若打开文件失败,则返回值NULL 执行该语句后,fopen函数返回指向名为temp 文件的指针并赋给fp,从而 使文件指针变量fp指向temp文件,并设定使用文件方式为r——读入

三、文件的打开和关闭 C程设计 文件使用方式 含义 “r”,"b” (只读) 为输入打开一个文本/二进制文件 “w”,"“wb”(只写) 为输出打开一个文本文件 “”,“ab”(追加) 为在文本/二进制文件末尾添加数据打开文件 “r+”,“rb+”(读写) 为读/写打开一个文本/二进制文件;后者可使用位 置函数指定读写起始位置 “w+”,“wb+”(读写) 首先建立一个新文本/二进制文件,进行读/写操 作;前者可从头开始读,后者可由位置函数设置 读写起始位置 “a+”, "ab+"(读写) 功能与a”,“ab”相同,但后者可由位置函数设置 开始读的起始位置
三、文件的打开和关闭 文件使用方式 含义 “r”, “rb” (只读) 为输入打开一个文本/二进制文件 “w”, “wb” (只写) 为输出打开一个文本文件 “a”, “ab”(追加) 为在文本/二进制文件末尾添加数据打开文件 “r+”, “rb+”(读写) 为读/写打开一个文本/二进制文件;后者可使用位 置函数指定读写起始位置 “w+”, “wb+”(读写) 首先建立一个新文本/二进制文件,进行读/写操 作;前者可从头开始读,后者可由位置函数设置 读写起始位置 “a+”, ”ab+”(读写) 功能与”a”, “ab”相同,但后者可由位置函数设置 开始读的起始位置

三、文件的打开和关闭 文件结束的判定:EOF和feof(文件指针) E0F(-1)是在stdio..h中定义的一个符号常量,只能作为文本文件结 束的标志: fof函数则即可以用来判断二进制文件是否结束,也可用于文本文件。 若遇到文件结束,返回值1;否则为0
三、文件的打开和关闭 文件结束的判定:EOF和feof(文件指针) EOF(-1)是在stdio.h中定义的一个符号常量,只能作为文本文件结 束的标志; feof函数则即可以用来判断二进制文件是否结束,也可用于文本文件。 若遇到文件结束,返回值1;否则为0

三、文件的打开和关闭 程序设计 关闭文件是指使文件指针变量不再指向该文件,即文件指针变量与文 件“脱钩”,此后不能再用该指针对文件进行读写操作。 用fclose(0函数关闭文件,该函数的调用方式通常为: fclose(文件指针): 例如:fclose(fp); 当顺利执行了关闭文件操作,fclosei函数返回值为0;否则,返回非0值。 注意:如在程序结束前不关闭打开的文件,有可能造成数据丢失。文件关闭后, 不能再通过原来的文件指针读写文件
三、文件的打开和关闭 关闭文件是指使文件指针变量不再指向该文件,即文件指针变量与文 件“脱钩” ,此后不能再用该指针对文件进行读写操作。 用fclose()函数关闭文件,该函数的调用方式通常为: fclose(文件指针); 例如: fclose(fp); 当顺利执行了关闭文件操作,fclose函数返回值为0;否则,返回非0值。 注意:如在程序结束前不关闭打开的文件,有可能造成数据丢失。文件关闭后, 不能再通过原来的文件指针读写文件

四、文件的常用读与写函数 (身程序设计 1、字符数据读写函数,一次读写一个字符。 char fgetc(FILE*fp); 函数功能是从文件指针指定的文件中读入一个字符,并将其作为函数值 返回。 int fputc(char ch,FILE *fp); 函数功能是向文件指针fp指定的文件中写入一个字符ch;若写入成功则 返回所输出的字符,否则返回E0F
四、文件的常用读与写函数 1、字符数据读写函数,一次读写一个字符。 char fgetc(FILE *fp); 函数功能是从文件指针fp指定的文件中读入一个字符,并将其作为函数值 返回。 int fputc(char ch, FILE *fp); 函数功能是向文件指针fp指定的文件中写入一个字符ch;若写入成功则 返回所输出的字符,否则返回EOF