首页 理论教育 C语言文件使用方式及注意事项

C语言文件使用方式及注意事项

时间:2023-10-27 理论教育 版权反馈
【摘要】:C语言将文件看作字符构成的序列,即字符流。使用文件的方式共有12 种,具体见表9.1。表9.1文件打开的方式对于文件使用方式有以下几点说明:a.文件使用方式由r、w、a、t、b、+6 个字符拼成,各字符的含义是:b.凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。但此时该文件必须是存在的,否则将会出错。在C语言中,用文件指针标识文件,当一个文件被打开时,可取得该文件的指针。

C语言文件使用方式及注意事项

任务描述

文件,使用计算机的人都接触过,它通常是指存储在外部介质上的数据的集合。比如处理文字的Word 文件、处理表格的Excel 文件、处理音乐的音频文件,另外还有视频文件、图形文件等。

在此之前,我们介绍的由C语言开发的程序,都没有对文件进行处理。程序需要的数据,全部依靠键盘手动输入,费时费力,而程序处理的结果也仅仅能够显示在屏幕上,程序退出,存储在内存中的数据将会丢失。因为内存中的数据只能暂时存储, 必须将数据存储在硬盘等外部介质上才能实现数据的长期保存,这就需要通过文件来实现。

在利用C语言对文件进行读写前,首先必须了解文件的概念,理解指向文件类型指针的用法,最后才是在程序中对文件进行读写等操作。

知识学习

(1)文件概述

“文件”是指存储在计算机外部存储器中的数据的集合。计算机在处理文件时,只要知道文件的名字,就可以自动完成文件的查找、存取、删除等各种操作。

C语言将文件看作字符构成的序列,即字符流。其基本的存储单位是字节。C语言中的文件,按照数据存放的形式分为两类:一类是将数据当作一个字符,按照它的ASCII 代码存放,称为ASCII 文件或文本(text)文件。第二类是按照数据值的二进制代码存放,称为二进制文件。

(2)文件的打开与关闭

1)文件类型指针

当在C语言中操作一个实际的磁盘文件时,一样需要一个流指针来代表这个文件。流指针其实是一个结构体类型的指针,这个结构体被定义在头文件stdio.h 中,它详细描述了一个流的性质,形式如下:

这是ANSI 标准中定义的,在不同的C语言编译平台下面可能有些不同,但区别不大,功能都是一样的,基本含义也没有什么变化。

通常使用FILE 结构来定义一个流指针:

FILE *fp;

而且,对于流指针,我们习惯给它起个名称,称为“文件指针”,就好像它指向某一个文件一样。

文件指针变量赋值操作是通过打开文件函数fopen()实现的。

2)文件的打开

C语言文件的打开是通过stdio.h 函数库的fopen()函数实现的。其调用的一般形式为:

文件指针名=fopen(文件名,使用文件方式);

其中:

“文件指针名”必须是被说明为FILE 类型的指针变量;

“文件名”是被打开文件的文件名;

“使用文件方式”是指文件的类型和操作要求;

“文件名”是字符串常量或字符串数组

例如:

FILE *fp;

fp=("file.txt","r");(www.xing528.com)

其意义是在当前目录下打开文件file.txt,只允许进行“读”操作,并使fp 指向该文件。

又如:

FILE *fp

fp=("c:\a.txt","rb")

其意义是打开C 驱动器磁盘的根目录下的文件a.txt,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\”中的第一个表示转义字符,第二个表示根目录。使用文件的方式共有12 种,具体见表9.1。

表9.1 文件打开的方式

对于文件使用方式有以下几点说明:

a.文件使用方式由r、w、a、t、b、+6 个字符拼成,各字符的含义是:

b.凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。

c.用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

d.若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。

e.在打开一个文件时,如果出错,fopen 将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:

这段程序的意义是,如果返回的指针为空,表示不能打开C 盘根目录下的a.txt 文件,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行,因此用户可利用这个等待时间阅读出错提示。敲键后执行exit(0)退出程序。

f.把一个文本文件读入内存时,要将ASCII 码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII 码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。

g.标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。

3)文件的关闭

文件的关闭通过stdio.h 中的fclose()函数实现。具体用法是:

fclose(文件指针);

例如:

fclose(fp);

正常完成关闭文件操作时,fclose 函数返回值为0。如返回非零值则表示有错误发生。

任务总结

C语言把文件当作一个“流”,按字节进行处理。C 文件按编码方式分为二进制文件和ASCII 文件。在C语言中,用文件指针标识文件,当一个文件被打开时,可取得该文件的指针。文件在读写之前必须打开,读写结束后必须关闭,用于实现保存的目的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈