C程序中,处理文件数据的过程可以分为3个主要步骤:①打开要处理的文件;②按某种方式处理文件;③关闭文件。表7.1文件模式及意义续表打开或建立指定文件成功时,fopen函数将返回一个文件类型变量的地址,该地址应赋值给FILE类型指针变量;若打开或建立文件失败,fopen函数返回一个空指针值。......
2023-11-20
对文件操作之前,必须先打开该文件;操作结束后,应立即关闭文件,以免数据丢失。
1.文件打开函数fopen()
fopen()函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式)
其中,“文件指针名”必须是被说明为FILE类型的指针变量,“文件名”是被打开文件的文件名,“使用文件方式”是指文件的类型和操作要求。
FILE*fp;
fp=(“fileA.txt”,“r”);
其意义是在当前目录下打开文件fileA.txt,只允许进行“读”操作,并使fp指向该文件。
又如:
FILE*fphzk;
fphzk=(“c:\\hzk16”,“rb”);
其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\”中的第一个表示转义字符,第二个表示根目录。“使用文件方式”共有12种,下面给出了它们的符号和意义,如表9.1所示。
表9.1 文件使用方式
说明:
(1)文件使用方式由r,w,a,t,b,+六个字符组成,各字符的含义是:
r(read):读;
w(write):写;
a(append):追加;(www.chuimin.cn)
t(text):文本文件,可省略不写;
b(banary):二进制文件;
+:读和写。
(2)凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
(3)用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件;若打开的文件已经存在,则将该文件删去,重建一个新文件。
(4)若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件,但此时该文件必须是存在的,否则将会出错。
(5)在打开一个文件时,如果出错,fopen()函数将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
上述语句先检查打开的操作是否出错,如果有错就在屏幕上输出“cannot open this file!”。exit()函数的作用是关闭所有文件,终止正在调用的过程。待用户检查出错误,修改后再运行。exit()函数是带参数调用的,参数是int型。参数为0时,表明这个停止属正常停止;当参数为其他值时,用参数指出造成停止的错误类型。使用exit()函数时,必须在程序前使用预编译命令“#include “stdlib.h””。
(6)把一个文本文件读入内存时,要将ASCII码转换成二进制码;而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码。因此,文本文件的读写要花费较多的转换时间。对二进制文件的读写则不存在这种转换。
(7)标准输入文件(键盘)、标准输出文件(显示器)、标准出错输出(出错信息)是由系统打开的,可直接使用。
2.文件的关闭函数fclose()
文件一旦使用完毕,应用关闭文件函数fclose()把文件关闭,以避免发生文件的数据丢失等错误。
fclose()函数调用的一般形式是:
fclose(文件指针);
例如:
fclose(fp);
正常完成关闭文件操作时,fclose()函数返回值为0。如返回非零值则表示有错误发生,可用函数ferror()函数来测试。
有关C语言程序设计 第2版的文章
C程序中,处理文件数据的过程可以分为3个主要步骤:①打开要处理的文件;②按某种方式处理文件;③关闭文件。表7.1文件模式及意义续表打开或建立指定文件成功时,fopen函数将返回一个文件类型变量的地址,该地址应赋值给FILE类型指针变量;若打开或建立文件失败,fopen函数返回一个空指针值。......
2023-11-20
◇ios∷noreplace如果文件存在,则打开失败。◇1只读文件◇2隐含文件◇4系统文件与其他状态标志一样,参数mode的符号常量可以用位或运算符“|”组合在一起,如ios∷in|ios∷binary表示以只读方式打开二进制文件。当流对象的生存期结束后,相应的析构函数也会将文件关闭。......
2023-11-07
例如,起始位置为文件头,偏移量为50,则表示将读写指针移到相对文件头距离50个字节的位置。表9.2文件指针起始位置的设置方法说明: 0表示相对于文件头; 1表示相对于文件的当前位置; 2表示相对于文件尾。例9.8建立一个数据文件,随机读取其中的某个数据。例9.9文件位置指针复位函数rewind()的应用。例9.10编写一个程序使用frell()函数估算一个文件的大小。......
2023-11-18
如果已经结束则返回值为非0值;否则返回0,表示文件尚未结束。例9.11从键盘上输入一个长度小于20的字符串,将该字符串写入文件“file.dat”中,并测试是否有错。......
2023-11-18
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
C语言的最大特点是:功能强、使用方便灵活。由于这个“灵活”给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。在C语言中大写字母和小写字母是两个不同的字符。C语言规定以’\0’作字符串结束标志,它是由系统自动加上的。当一个语句中使用多层括弧时常出现这类错误。main()C语言中对数组的定义或引用数组元素时必须用方括弧。......
2023-11-18
在C 语言中,对文件的基本操作包括文件的打开与关闭、文件的读和写等。表9.1文件操作方式例如:打开当前目录下的C.DAT 文件,这是一个二进制文件,只允许进行读操作,并使fp 指针指向该文件。应该养成在程序终止前关闭所有文件的习惯,如果不关闭文件将会丢失数据。......
2023-10-21
相关推荐