C语言文件操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
例如:整数1268 例如:整数
文本文件形式 00110001 00110010 00110110 00111000
‘1’的ASCII码 ‘2’的ASCII码 ‘6’的ASCII码 ‘8’的ASCII码 的ASCII码 的ASCII码 的ASCII码 的ASCII码
二进制文件形式 00000100 11110100
标准文件的打开
1. 打开文件的含义 将文件信息从磁盘装入计算机内存,建立文件 将文件信息从磁盘装入计算机内存, 的各种有关信息,并使文件指针指向该文件, 的各种有关信息,并使文件指针指向该文件,即建 立文件类型指针与文件名之间的关联. 立文件类型指针与文件名之间的关联.
2.文件的打开函数: fopen 文件的打开函数:
r: read , w: write , a: append , b:binary ,+: 读写
16
C语言文件操作方式 续) 语言文件操作方式(续 语言文件操作方式
”r+ (读写) 为读/写打开一个文本文件 r+” 读写) 为读/ r+ 读写) 为读/ ”w+” (读写) 为读/写建立一个新的文本文件 w+ 读写) 为读/ ”a+” (读写) 为读/写打开一个文本文件 a+ 读写) 为读/ ”rb+” (读写) 为读/写打开一个二进制文件 rb+ ”wb+” ( 读写) 为读/写建立一个新的二进制文件 wb+ 读写) 为读/ 读写) 为读/ ”ab+” ( 读写) 为读/写打开一个二进制文件 ab+
23
编写一个程序,实现 实现DOS中的 中的type命令的功能 命令的功能. 例11.3 编写一个程序 实现 中的 命令的功能
3
二、数据文件的存储形式
1、字符文件(文本文件):每个字符用一个 ASCII码 、字符文件(文本文件) 每个字符用一个 ASCII码 存储(即一个字符占一个字节)。 存储(即一个字符占一个字节)。 2、二进制文件:以数据在内存中的形式原样存于磁盘。 、二进制文件:以数据在内存中的形式原样存于磁盘。 如:一个短整数(short型), 一个短整数( 型 其二进制文件存储方式都是占2个字节; 其二进制文件存储方式都是占2个字节; 而字符文件存储方式所占字节数 该数的数字个数。 字节数= 而字符文件存储方式所占字节数=该数的数字个数。 int型数 型数 二进制文件 字符文件 126 2字节 3字节 1268 2字节 4字节
14
文件打开函数的调用给编译系统的三个信息: 文件打开函数的调用给编译系统的三个信息: 1. 需要打开的文件名; 需要打开的文件名; 2. 使用文件的操作方式; 使用文件的操作方式; 3 .让哪一个指针变量指向被打开的文件。 让哪一个指针变量指向被打开的文件。 让哪一个指针变量指向被打开的文件
15
21
四 标准文件读写函数
读文件字符函数:fgetc 1. 读文件字符函数:fgetc 函数原型: 函数原型 int fgetc(FILE *fp) ; fp是指向所读 是指向所读 文件指针变量
函数功能: 函数功能 从文件指针fp指向的文件当前位置 指向的文件当前位置(位置指 从文件指针 指向的文件当前位置 位置指 读出一个字符,然后文件位置指针自动后移 针)读出一个字符 然后文件位置指针自动后移 读出一个字符 然后文件位置指针自动后移, 指向文件中的下一个字符,返回值为读入的字符 返回值为读入的字符. 指向文件中的下一个字符 返回值为读入的字符 若遇到文件结束符,则返回结束符 若遇到文件结束符 则返回结束符EOF(-1). 则返回结束符 例: ch=fgetc(fp);
r: read , w: write , a: append , b:binary ,+: 读写
17
4. 标准文件操作方式的说明 标准文件操作方式的说明(1-5)
(1 ) 用”r”方式打开的文件只能用于向计算机输入数 方式打开的文件只能用于向计算机输入数 而且该文件应该已经存在; 据,而且该文件应该已经存在; (2) 用”w”方式打开的文件只能用于向该文件写数 方式打开的文件只能用于向该文件写数 而不能用来向计算机输入。 据,而不能用来向计算机输入。 如果不存在该文 则在打开时建立一个。 件,则在打开时建立一个。 如果存在该文件 则 新写 则在打开时建立一个 如果存在该文件,则 入的数据将覆盖掉以前的数据。 入的数据将覆盖掉以前的数据。 (3) 如果希望向文件末尾添加新的数据(不希望删 如果希望向文件末尾添加新的数据( 除原有数据) 则应该用 则应该用” 方式打开 方式打开。 除原有数据),则应该用”a”方式打开。
19
盘根下的myfile.c文件 验证文件能否 文件,验证文件能否 例:打开C盘根下的 盘根下的 文件 正确打开. 正确打开
#include <stdio.h> void main() { FILE *fa; ?
if((fa=fopen(”c:\\myfile.c”,”r”))==NULL) { printf(“\n Cannot open the file!”); exit(0); /*退出*/ } else printf(” \n Open! ”); } 提示: 提示: 1. 该文件在磁盘上不存在/存 该文件在磁盘上不存在 存 在时,比较运行结果。 在时,比较运行结果。 改 2. 将程序中的”r”改 为”w” ,当该文件在磁盘上 当该文件在磁盘上 不存在/存在时 存在时, 不存在 存在时,比较运行结 20 果。
标准文件的关闭函数: 三. 标准文件的关闭函数 fclose 函数原型: 函数原型 int fclose(FILE *fp); ;
功能: 功能:
关闭文件指针fp所指的文件 释放相应的文件 关闭文件指针 所指的文件,释放相应的文件 所指的文件 信息区. 正常关闭文件时,函数返回值为 函数返回值为0. 信息区 正常关闭文件时 函数返回值为 在使用完一个文件后应该关闭它, 在使用完一个文件后应该关闭它,以防止它 再被误用。 再被误用。
函数原型: 函数原型 FILE *fopen(char *filename,char *mode);
fp=fopen(文件名,使用文件方式); 文件名,使用文件方式) 文件名
13
返回值: 返回值
FILE类型指针 成功 类型指针----成功 类型指针 NULL ----失败 失败
fopen( )函数的返回值应赋给一个 函数的返回值应赋给一个FILE指 函数的返回值应赋给一个 指 针变量, 否则,此函数的返回值就会丢失, 针变量, 否则,此函数的返回值就会丢失, 导致无法对此文件进行操作。 导致无法对此文件进行操作。 例如: 例如: FILE *fp; fp=fopen(”A1”, ”r”); 以上语句表示: 以上语句表示: 要打开名字为A1的文件 的文件, 方式为“ 要打开名字为 的文件,使用文件的方式为“读 指向A1文件 入”,fp指向 文件。 指向 文件。
22
将磁盘文件” 例: 将磁盘文件”mydata.txt”的信息读出并显 的信息读出并显 示到屏幕上.(假设文件已经存在 若不存在,可以 假设文件已经存在,若不存在 示到屏幕上 假设文件已经存在 若不存在 可以 用记事本或其它文本编辑器编辑一个) 用记事本或其它文本编辑器编辑一个
#include <stdio.h> void main() { FILE *fp; char c; if ((fp=fopen( ”mydata.txt” , ”r” ))==NULL) {printf(“\n File notexist!”);exit(0); } while((c=fgetc(fp)!=EOF) putchar( c ); fclose(fp); }
6
4.文件存取方式
语言中,文件的存取有两种方式 在C语言中 文件的存取有两种方式: 语言中 文件的存取有两种方式: (1)顺序存取 ) (2)随机存取 )
7
标准文件操作
一、 标准文件类型指针 1.文件类型指针概述 1.文件类型指针概述
每个被使用的文件都在内存中开辟一个 区域,用来存放文件的有关信息。 区域,用来存放文件的有关信息。 这些信息是保存在一个结构体类型的变量 该结构体类型是由系统定义的, 中。该结构体类型是由系统定义的,取名为 FILE。 FILE。
18
4. 标准文件操作方式的说明 标准文件操作方式的说明(1-5)
(4) 用”r+”、 ”w+” 、 ”a+”方式打开的文件可 、 方式打开的文件可 以用来输入和输出数据。 以用来输入和输出数据。 (5) 在程序开始运行时,系统自动打开三个标准 在程序开始运行时, 文件:标准输入(stdin)、标准输出 文件:标准输入 、标准输出(stdout)、标准 、 出错输出(stderr)。 出错输出 。
FILE: FILE: 一个标 准的标 识符, 识符, 但不是 关键字
9源自文库
2. 文件型指针变量的定义 FILE *指针变量标识符; 指针变量标识符; 指针变量标识符 如 FILE *fp;
fp是一个指向 是一个指向FILE类型结构体的指针变量 类型结构体的指针变量, 是一个指向 类型结构体的指针变量 通过该结构体变量中的文件信息能够访问该文 件。 如果有N个文件 一般应设N个指针变量 个文件, 个指针变量, 如果有 个文件,一般应设 个指针变量, 使它们分别指向N个文件 确切地说, 个文件( 使它们分别指向 个文件(确切地说,指向该 文件的信息结构体),以实现对文件的访问。 ),以实现对文件的访问 文件的信息结构体),以实现对文件的访问。
2
2、文件的分类
按存储介质: (1)按存储介质: 磁盘文件、磁带文件。 磁盘文件、磁带文件。 (2)按文件的内容:(从程序设计的角度看) 按文件的内容: 从程序设计的角度看) 源程序、目标文件、可执行文件、 源程序、目标文件、可执行文件、数 据文件。 据文件。 按文件的编码方式(存储形式) (3)按文件的编码方式(存储形式): 文本文件、二进制文件。 文本文件、二进制文件。
10
标准文件操作的四个基本步骤: 标准文件操作的四个基本步骤: 1. 文件类型指针的定义 2. 打开标准文件 3. 标准文件的读或写的操作 4. 标准文件的关闭操作
11
文 件 的 操 作 步 骤
定义文件类型指针 指针定义
打开文件
文件打开函数
对文件进行读或写 文件读写函数
关闭文件
文件关闭函数
12
二.
8
typedef struct { short level; unsigned flags; char fd; unsigned char hild; short bsize; unsigned char *buffer; unsigned istemp; short token; } FILE;
第八章 文件
文件系统 概述 标准文件操作
1
文件系统 概述
一、文件定义与分类
1、文件
文件是存储在外部存储介质上的信息的集合。 。 每个文件有唯一的文件名(主名.后缀)来标识。 每个文件有唯一的文件名(主名.后缀)来标识。 计算机实现按名对文件进行读、写等有关操作。 计算机实现按名对文件进行读、写等有关操作。 广义上, 广义上,操作系统将每一个与主机相联的输入输 出设备都看作是文件。(显示器、打印机是输出文件, 。(显示器 出设备都看作是文件。(显示器、打印机是输出文件, 键盘是输入文件)。 键盘是输入文件)。
1268的二进制数 的二进制数 的二进制
5
三.标准文件系统、非标准文件系统
标准c 采用缓冲文件系统,其原理图如下: 标准 采用缓冲文件系统,其原理图如下:
输出文件缓冲区 程序数据区
输出
输出
磁盘
输入文件缓冲区
内存
输入 输入
非标准文件系统:不使用缓冲区的磁盘文件系统 非标准文件系统 不使用缓冲区的磁盘文件系统
3. C语言文件操作方式 语言文件操作方式
”r” (只读) r 只读) 追加) ”a” (追加) 只写) ”wb” (只写) wb 追加) ”ab” (追加) ab 为输入打开一个文本文件 只写) ”w” (只写) 为输出打开一个文本文件 向文本文件尾增加数据 ”rb” (只读) 为输入打开一个二进制文件 rb 只读) 为输出打开一个二进制文件 向二进制文件尾增加数据
例如:整数1268 例如:整数
文本文件形式 00110001 00110010 00110110 00111000
‘1’的ASCII码 ‘2’的ASCII码 ‘6’的ASCII码 ‘8’的ASCII码 的ASCII码 的ASCII码 的ASCII码 的ASCII码
二进制文件形式 00000100 11110100
标准文件的打开
1. 打开文件的含义 将文件信息从磁盘装入计算机内存,建立文件 将文件信息从磁盘装入计算机内存, 的各种有关信息,并使文件指针指向该文件, 的各种有关信息,并使文件指针指向该文件,即建 立文件类型指针与文件名之间的关联. 立文件类型指针与文件名之间的关联.
2.文件的打开函数: fopen 文件的打开函数:
r: read , w: write , a: append , b:binary ,+: 读写
16
C语言文件操作方式 续) 语言文件操作方式(续 语言文件操作方式
”r+ (读写) 为读/写打开一个文本文件 r+” 读写) 为读/ r+ 读写) 为读/ ”w+” (读写) 为读/写建立一个新的文本文件 w+ 读写) 为读/ ”a+” (读写) 为读/写打开一个文本文件 a+ 读写) 为读/ ”rb+” (读写) 为读/写打开一个二进制文件 rb+ ”wb+” ( 读写) 为读/写建立一个新的二进制文件 wb+ 读写) 为读/ 读写) 为读/ ”ab+” ( 读写) 为读/写打开一个二进制文件 ab+
23
编写一个程序,实现 实现DOS中的 中的type命令的功能 命令的功能. 例11.3 编写一个程序 实现 中的 命令的功能
3
二、数据文件的存储形式
1、字符文件(文本文件):每个字符用一个 ASCII码 、字符文件(文本文件) 每个字符用一个 ASCII码 存储(即一个字符占一个字节)。 存储(即一个字符占一个字节)。 2、二进制文件:以数据在内存中的形式原样存于磁盘。 、二进制文件:以数据在内存中的形式原样存于磁盘。 如:一个短整数(short型), 一个短整数( 型 其二进制文件存储方式都是占2个字节; 其二进制文件存储方式都是占2个字节; 而字符文件存储方式所占字节数 该数的数字个数。 字节数= 而字符文件存储方式所占字节数=该数的数字个数。 int型数 型数 二进制文件 字符文件 126 2字节 3字节 1268 2字节 4字节
14
文件打开函数的调用给编译系统的三个信息: 文件打开函数的调用给编译系统的三个信息: 1. 需要打开的文件名; 需要打开的文件名; 2. 使用文件的操作方式; 使用文件的操作方式; 3 .让哪一个指针变量指向被打开的文件。 让哪一个指针变量指向被打开的文件。 让哪一个指针变量指向被打开的文件
15
21
四 标准文件读写函数
读文件字符函数:fgetc 1. 读文件字符函数:fgetc 函数原型: 函数原型 int fgetc(FILE *fp) ; fp是指向所读 是指向所读 文件指针变量
函数功能: 函数功能 从文件指针fp指向的文件当前位置 指向的文件当前位置(位置指 从文件指针 指向的文件当前位置 位置指 读出一个字符,然后文件位置指针自动后移 针)读出一个字符 然后文件位置指针自动后移 读出一个字符 然后文件位置指针自动后移, 指向文件中的下一个字符,返回值为读入的字符 返回值为读入的字符. 指向文件中的下一个字符 返回值为读入的字符 若遇到文件结束符,则返回结束符 若遇到文件结束符 则返回结束符EOF(-1). 则返回结束符 例: ch=fgetc(fp);
r: read , w: write , a: append , b:binary ,+: 读写
17
4. 标准文件操作方式的说明 标准文件操作方式的说明(1-5)
(1 ) 用”r”方式打开的文件只能用于向计算机输入数 方式打开的文件只能用于向计算机输入数 而且该文件应该已经存在; 据,而且该文件应该已经存在; (2) 用”w”方式打开的文件只能用于向该文件写数 方式打开的文件只能用于向该文件写数 而不能用来向计算机输入。 据,而不能用来向计算机输入。 如果不存在该文 则在打开时建立一个。 件,则在打开时建立一个。 如果存在该文件 则 新写 则在打开时建立一个 如果存在该文件,则 入的数据将覆盖掉以前的数据。 入的数据将覆盖掉以前的数据。 (3) 如果希望向文件末尾添加新的数据(不希望删 如果希望向文件末尾添加新的数据( 除原有数据) 则应该用 则应该用” 方式打开 方式打开。 除原有数据),则应该用”a”方式打开。
19
盘根下的myfile.c文件 验证文件能否 文件,验证文件能否 例:打开C盘根下的 盘根下的 文件 正确打开. 正确打开
#include <stdio.h> void main() { FILE *fa; ?
if((fa=fopen(”c:\\myfile.c”,”r”))==NULL) { printf(“\n Cannot open the file!”); exit(0); /*退出*/ } else printf(” \n Open! ”); } 提示: 提示: 1. 该文件在磁盘上不存在/存 该文件在磁盘上不存在 存 在时,比较运行结果。 在时,比较运行结果。 改 2. 将程序中的”r”改 为”w” ,当该文件在磁盘上 当该文件在磁盘上 不存在/存在时 存在时, 不存在 存在时,比较运行结 20 果。
标准文件的关闭函数: 三. 标准文件的关闭函数 fclose 函数原型: 函数原型 int fclose(FILE *fp); ;
功能: 功能:
关闭文件指针fp所指的文件 释放相应的文件 关闭文件指针 所指的文件,释放相应的文件 所指的文件 信息区. 正常关闭文件时,函数返回值为 函数返回值为0. 信息区 正常关闭文件时 函数返回值为 在使用完一个文件后应该关闭它, 在使用完一个文件后应该关闭它,以防止它 再被误用。 再被误用。
函数原型: 函数原型 FILE *fopen(char *filename,char *mode);
fp=fopen(文件名,使用文件方式); 文件名,使用文件方式) 文件名
13
返回值: 返回值
FILE类型指针 成功 类型指针----成功 类型指针 NULL ----失败 失败
fopen( )函数的返回值应赋给一个 函数的返回值应赋给一个FILE指 函数的返回值应赋给一个 指 针变量, 否则,此函数的返回值就会丢失, 针变量, 否则,此函数的返回值就会丢失, 导致无法对此文件进行操作。 导致无法对此文件进行操作。 例如: 例如: FILE *fp; fp=fopen(”A1”, ”r”); 以上语句表示: 以上语句表示: 要打开名字为A1的文件 的文件, 方式为“ 要打开名字为 的文件,使用文件的方式为“读 指向A1文件 入”,fp指向 文件。 指向 文件。
22
将磁盘文件” 例: 将磁盘文件”mydata.txt”的信息读出并显 的信息读出并显 示到屏幕上.(假设文件已经存在 若不存在,可以 假设文件已经存在,若不存在 示到屏幕上 假设文件已经存在 若不存在 可以 用记事本或其它文本编辑器编辑一个) 用记事本或其它文本编辑器编辑一个
#include <stdio.h> void main() { FILE *fp; char c; if ((fp=fopen( ”mydata.txt” , ”r” ))==NULL) {printf(“\n File notexist!”);exit(0); } while((c=fgetc(fp)!=EOF) putchar( c ); fclose(fp); }
6
4.文件存取方式
语言中,文件的存取有两种方式 在C语言中 文件的存取有两种方式: 语言中 文件的存取有两种方式: (1)顺序存取 ) (2)随机存取 )
7
标准文件操作
一、 标准文件类型指针 1.文件类型指针概述 1.文件类型指针概述
每个被使用的文件都在内存中开辟一个 区域,用来存放文件的有关信息。 区域,用来存放文件的有关信息。 这些信息是保存在一个结构体类型的变量 该结构体类型是由系统定义的, 中。该结构体类型是由系统定义的,取名为 FILE。 FILE。
18
4. 标准文件操作方式的说明 标准文件操作方式的说明(1-5)
(4) 用”r+”、 ”w+” 、 ”a+”方式打开的文件可 、 方式打开的文件可 以用来输入和输出数据。 以用来输入和输出数据。 (5) 在程序开始运行时,系统自动打开三个标准 在程序开始运行时, 文件:标准输入(stdin)、标准输出 文件:标准输入 、标准输出(stdout)、标准 、 出错输出(stderr)。 出错输出 。
FILE: FILE: 一个标 准的标 识符, 识符, 但不是 关键字
9源自文库
2. 文件型指针变量的定义 FILE *指针变量标识符; 指针变量标识符; 指针变量标识符 如 FILE *fp;
fp是一个指向 是一个指向FILE类型结构体的指针变量 类型结构体的指针变量, 是一个指向 类型结构体的指针变量 通过该结构体变量中的文件信息能够访问该文 件。 如果有N个文件 一般应设N个指针变量 个文件, 个指针变量, 如果有 个文件,一般应设 个指针变量, 使它们分别指向N个文件 确切地说, 个文件( 使它们分别指向 个文件(确切地说,指向该 文件的信息结构体),以实现对文件的访问。 ),以实现对文件的访问 文件的信息结构体),以实现对文件的访问。
2
2、文件的分类
按存储介质: (1)按存储介质: 磁盘文件、磁带文件。 磁盘文件、磁带文件。 (2)按文件的内容:(从程序设计的角度看) 按文件的内容: 从程序设计的角度看) 源程序、目标文件、可执行文件、 源程序、目标文件、可执行文件、数 据文件。 据文件。 按文件的编码方式(存储形式) (3)按文件的编码方式(存储形式): 文本文件、二进制文件。 文本文件、二进制文件。
10
标准文件操作的四个基本步骤: 标准文件操作的四个基本步骤: 1. 文件类型指针的定义 2. 打开标准文件 3. 标准文件的读或写的操作 4. 标准文件的关闭操作
11
文 件 的 操 作 步 骤
定义文件类型指针 指针定义
打开文件
文件打开函数
对文件进行读或写 文件读写函数
关闭文件
文件关闭函数
12
二.
8
typedef struct { short level; unsigned flags; char fd; unsigned char hild; short bsize; unsigned char *buffer; unsigned istemp; short token; } FILE;
第八章 文件
文件系统 概述 标准文件操作
1
文件系统 概述
一、文件定义与分类
1、文件
文件是存储在外部存储介质上的信息的集合。 。 每个文件有唯一的文件名(主名.后缀)来标识。 每个文件有唯一的文件名(主名.后缀)来标识。 计算机实现按名对文件进行读、写等有关操作。 计算机实现按名对文件进行读、写等有关操作。 广义上, 广义上,操作系统将每一个与主机相联的输入输 出设备都看作是文件。(显示器、打印机是输出文件, 。(显示器 出设备都看作是文件。(显示器、打印机是输出文件, 键盘是输入文件)。 键盘是输入文件)。
1268的二进制数 的二进制数 的二进制
5
三.标准文件系统、非标准文件系统
标准c 采用缓冲文件系统,其原理图如下: 标准 采用缓冲文件系统,其原理图如下:
输出文件缓冲区 程序数据区
输出
输出
磁盘
输入文件缓冲区
内存
输入 输入
非标准文件系统:不使用缓冲区的磁盘文件系统 非标准文件系统 不使用缓冲区的磁盘文件系统
3. C语言文件操作方式 语言文件操作方式
”r” (只读) r 只读) 追加) ”a” (追加) 只写) ”wb” (只写) wb 追加) ”ab” (追加) ab 为输入打开一个文本文件 只写) ”w” (只写) 为输出打开一个文本文件 向文本文件尾增加数据 ”rb” (只读) 为输入打开一个二进制文件 rb 只读) 为输出打开一个二进制文件 向二进制文件尾增加数据