文档介绍:第 9 章 C语言库函数
概述
文件类型指针
文件的打开与关闭
文件的读写
文件的定位
出错的检查
非缓冲文件系统
第 9 章 C语言库函数
概述
C语言将文件看作是一个字符(字节)序列组成的。
分为ASCII文件和二进制文件两种。
C的“缓冲文
件系统”自动地
在内存中开辟一
个文件缓冲区,
在对文件进行处
理时,通过文件
缓冲区进行输入
与输出。
程序
数据区
输出
缓冲区
输出
输入
磁盘
文件
输出
输入
缓冲区
输入
文件类型指针
“文件指针”是缓冲文件系统中的一个重要概念。在
C系统的头文件 中定义了一个名叫 FILE 的结构
体类型:
typedef struct
{ short
unsigned
char
unsigned char
short
unsigned char
unsigned char
unsigned
short
} FILE;
level;
flage;
fd;
hold;
bsize;
*buffer;
*curp;
istemp;
token;
/* 缓冲区饱和程度*/
/* 文件状态标志*/
/* 文件号*/
/* 无缓冲区取消字符输入 */
/* 缓冲区大小, 缺省值512 */
/* 缓冲区*/
/* 当前活动指针*/
/* 草稿文件标识*/
/* 作正确性检验*/
文件的打开与关闭
在对文件读、写之前必须先打开该文件,使用结束
后应关闭该文件。
1. 文件打开函数 fopen
函数调用格式:
FILE *fp;
fp=fopen(“文件名”,“使用方式”);
以指定的使用方式打开指定的文件。
说明:
用 fp 指向打开的文件后, 就可以用它来访问该文件。
“文件名”为任何合法的DOS文件名。
使用方式见下表:
使用
方式
含义
若文件不存在
若有此文件
r
只读(文本文件)
返回错误标志
打开指定的文件
W
只写(文本文件)
建立新文件
打开指定的文件并清空内容
a
添加(文本文件)
建立新文件
打开指定的文件,但只能在文件末尾添加数据
r+
读/写(文本文件)
返回错误标志
打开指定的文件
w+
读/写(文本文件)
建立新文件
打开指定的文件并清空内容
a+
读/写(文本文件)
建立新文件
打开指定的文件,可读/写
rb
只读(二进制文件)
返回错误标志
打开指定的文件
wb
只写(二进制文件)
建立新文件
打开指定的文件并清空内容
ab
添加(二进制文件)
建立新文件
打开指定的文件,但只能在文件末尾添加数据
rb+
读/写(二进制文件)
返回错误标志
打开指定的文件
wb+
读/写(二进制文件)
建立新文件
打开指定的文件并清空内容
ab+
读/写(二进制文件)
建立新文件
打开指定的文件,可读/写
文本文件中的回车换行符在输入时转换为一个换行符,
在输出时又转换为回车换行符。
为了可靠地打开指定的文件, 常用下列方法:
if ((fp=fopen(“file1”, “ r ”))==NULL){ printf(“cannot open this file\n”); exit(0);
}
2. 文件关闭函数 fclose
使用完一个文件后必须关闭它,以防数据丢失和被
其它操作误用。
fclose函数的调用格式:
fclose(文件指针);
关闭文件时的操作就是使指针与文件“脱钩”。正常
关闭时fclose函数返回0值,关闭有误时返回非0值。
文件的读写
1. fgetc 函数
fgetc 函数的功能是从以读或读写方式打开的文件
中读入一个字符。
调用格式:
ch=fgetc(fp);
ch 为字符型变量;fp为指向文件的文件类型指针。
2. fputc 函数
fputc函数的功能是将一个字符写入以写方式打开的
磁盘文件。
调用格式:
fputc(ch, fp);
ch是要输出的字符;fp为指向文件的文件类型指针。
EOF为标准文件的结束标志。在流式文件中,文件
结束标志为feof。当fp指向的文件遇到文件结束标志时,
feof(fp)=1,否则为0。
3. fread 函数和 fwrite 函数
它们是 ANSI C 标准提供的函数。
调用格式为:
fread(buffer, size, count, fp);
fwrite(buffer, size, count, fp);
buffer 为指向 fread 读入数据存放