对文件进行读/写操作之前应先"打开"该文件,即为该文件申请一个文件缓冲区。文件打开用fopen函数,其调用的一般形式为:
在打开一个文件时,通知编译系统以下三个信息:
●需打开的文件名;
●使用文件的方式;
●让哪一个指针变量指向被打开的文件。
例如:
其意义是检查文件指针fp所指向的文件是否存在,如果存在,则打开C盘根目录下的config.sys文件,只允许进行读操作,并使fp指向该文件。两个反斜线"\\"中的第一个表示转义字符,第二个表示根目录。
又如:
其意义是先检查文件p.dat是否存在,如果存在,则打开当前目录下的文件p.dat。这是一个二进制文件,只允许按二进制方式进行读操作。使用文件的方式共有12 种,其具体含义如表11.1所示。
表11.1 文件打开方式
(www.xing528.com)
对于文件使用方式有以下几点说明。
(1)文件使用方式由r,w,a,b,+等5 个字符拼成,各字符的含义如下:
(2)若要用r 打开一个文件,则该文件必须已经存在,且只能从该文件读出。
(3)若用w 打开的文件,则只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件。
(4)若要向一个已存在的文件追加新的信息,则只能用a 方式打开文件,但此时该文件必须是存在的,否则,将会出错。
在打开一个文件时,如果出错,则fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此,常用以下程序段打开文件:
这段程序的含义是,如果返回的指针为空,表示不能打开D 盘根目录下的d 文件,则给出提示信息"error on open D:\d.dat file!!",下一行exit(1)退出程序。
⑤把一个文本文件读入内存时,要将ASCII 码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII 码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。
⑥标准输入文件(键盘)、标准输出文件(显示器)、标准出错输出(出错信息)是由系统打开的,可直接使用,对应的文件指针为stdin、stdout、stderr。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。