内容正文:
第11章 文件
C语言技能教程
第 11 章
11.1 技能1:创建及使用文件
11.2 技能2:随机文件读写
C语言技能教程
11.1 技能1
11.1.1 认识文件
【知识点】
1. 文件的分类按内容分为源程序文件和数据文件。
(1) 源程序文件。在前几章中接触到的是源程序文件,它既可以通过常规的编辑软件建立,也可以使用Turbo C中的集成开发环境建立。本章不在复述。
(2) 数据文件。数据文件是没有接触过的,C语言把数据文件看作是一个字符(字节)的序列,即由多个字符(字节)数据顺序组成。
C语言技能教程
11.1 技能1
11.1.1 认识文件
【知识点】
(2) 二进制文件。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。如果有一个整数3276,在内存中占2个字节,如果按ASCII形式输出,则占4个字节,而按二进制形式输出,在磁盘上只占2个字节。
C语言技能教程
11.1 技能1
11.1.1 认识文件
【知识点】
(3) ASCII文件与二进制文件的特点。
用ASCII码形式输出与字符一一对应,一个字节代表一个字符,因而便于对字符进行逐个处理,也便于输出字符。但一般占存储空间较多,而且要花费转换时间。(二进制形式与ASCII码间的转换)用二进制形式输出数值,可以节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。一般中间结果数据需要暂时保存在外存上以后又需要输入到内存的,常用二进制文件保存。
C语言技能教程
11.1 技能1
11.1.2 创建文件
【知识点】
1.文件指针变量的定义格式为:
FILE * 指针变量名
C语言技能教程
11.1 技能1
11.1.2 创建文件
【知识点】
2.为什么要定义文件指针变量呢?其中的FILE和fp又是干什么用的呢?原因是:
(1)每个被使用的文件都在内存中开辟一个区域,用来存放该文件的有关信息,如文件的名字、文件状态以及文件的当前位置等,C语言把这些信息存入一个名为FILE的类型中,在使用某个文件时,可定义一个FLIE类型的变量,从而通过该变量中的文件信息能够访问该文件。也就是说,通过文件指针变量能够找到与它相关的文件。
(2)fp是用户给出的文件指针变量名,它的类型是FILE型。
C语言技能教程
11.1 技能1
11.1.2 创建文件
【知识点】
1.文件的打开函数fopen( )一般调用形式为:
FILE *fp;
fp=fopen(文件名,使用文件方式)
2. 函数功能:返回一个指向FILE类型的指针。
C语言技能教程
表11-1常用的文件使用方式及其含义
标示符 含 义 标示符 含 义
r 打开一个ASCII码文件只读 r+ 打开一个ASCII码文件读/写
w 创建一个ASCII码文件只写 w+ 创建一个ASCII码文件读/写
a 打开一个ASCII码文件追加 a+ 打开一个ASCII码文件读/写
rb 打开一个二进制文件只读 rb+ 打开一个二进制文件读/写
wb 创建一个二进制文件只写 wb+ 创建一个二进制文件读/写
ab 打开一个二进制文件追加 ab+ 打开一个二进制文件读/写
C语言技能教程
例11.1 以只读方式打开一个指定名为"AAA.TXT"的ASCII码文件,若该文件不存在,输出“cannot openfile”,若打开成功,输出“success”。
#include"stdio.h"
main( )
{ FILE *fp;
if((fp=fopen("AAA.TXT","r"))= =NULL)
printf("cannot open file
");
else
printf("success");
exit(1); }
11.1 技能1
【典型例题】
C语言技能教程
11.1 技能1
11.1.2 创建文件
【知识点】
1.文件的关闭一般形式为:
fclose(<文件指针变量>)
2.功能:使文件指针变量不再指向该文件,也就是文件指针变量与文件“脱离关系”,此后不能再通过该指针对其相连的文件进行读写操作,除非再次打开,使该指针变量重新指向该文件。当成功地执行了关闭操作,函数返回0,否则返回非0。
C语言技能教程
例11.2 以只读方式打开一个指定名为“AAA.TXT”的
ASCII码文件,若该文件不存在,返回cannot open
file加以提示,然后关闭。
#include"stdio.h"
main( )
{
FILE *fp;
if((fp=fopen("AAA.TXT","r"))= =NULL)
pr