文件的输入输出函数
键盘、显示器、打印机、磁盘驱动器等逻辑设备, 其输入输出都可以通过文件管理的方法来完成。而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍 Turbo C2.0 提供的文件操作函数, 当然这些对文件的操作函数也适合于非磁盘文件的情况。
另外, Turbo C2.0 提供了两类关于文件的函数。一类称做标准文件函数也称缓冲型文件函数, 这是 ANSI标准定义的函数;
另一类叫非标准文件函数, 也称非缓冲型文件函数。这类函数最早公用于 UNIX 操作系统,但现在 MS-DOS3.0 以上版本的操作系统也可以使用。下面分别进行介绍。
标准文件函数
标准文件函数主要包括文件的打开、关闭、读和写等函数。不象 BASIC 、FORTRAN 语方有顺序文件和随机文件之分,在打开时就应按不同的方式确定。Turbo C2.0 并不区分这两种文件, 但提供了两组函数,即顺序读写函数和随机读写函数
一、文件的打开和关闭
任何一个文件在使用之前和使用之后, 必须要进行打开和关闭, 这是因为操作系统对于同时打开的文件数目是有限制的, DOS 操作系统中,可以在 DEVICE.SYS 中定义允许同时打开的文件数 n(用 files=n 定义)。
其中 n 为可同时打开的文 件数, 一般 n<=20。因此在使用文件前应打开文件, 才可对其中的信息进行存取。用完之后需要关闭, 否则将会出现一些意想不到的错误。Turbo C2.0 提供了打开和关闭文件的函数。
fopen()函数
fopen 函数用于打开文件, 其调用格式为:
FILE *fopen(char *filename, *type);
在介绍这个函数之;前, 先了解一下下面的知识。
(1) 流(stream)和文件(file)
流和文件 在 Turbo C2.0 中是有区别的, Turbo C2.0 为编程者和被访问的设备之间提供了一层抽象的东西,称之为"流", 而将具体的实际设备叫做文件。流是一个逻辑设备, 具有相同的行为。因此, 用来进行磁盘文件写的函数也同样 可以用来进行打印机的写入。在 Turbo C2.0 中有两种性质的流:
文字流( text stream)和二进制(binary stream)。对磁盘来说就是文本文件和二进制文件。本软件为了便于让读者易理解 Turbo C2.0 语言而没有对流和文件作特别区分。
(2) 文件指针 FILE
实际上 FILE 是一个新的数据类型。它是 Turbo C2.0 的基本数据类型的集合,称之为结构指针。这里只要将 FILE 理解为一个包括了文件管理有关信息的数据结构, 即在打开文件时必须先定义一个文件指针。
(3) 以后介绍的函数调用格式将直接写出形式参数的数据类型和函数返回值的数据类型。例如: 上面打开文件的函数, 返回一个文件指针, 其中形式参数有
两个, 均为字符型变量(字符串数组或字符串指针)。
现在再来看打开文件函数的用法。
fopen()函数中第一个形式参数表示文件名, 可以包含路径和文件名两部分。如:
"B:TEST.DAT"
"C:\TC\TEST.DAT"
如果将路径写成"C:\TC\TEST.DAT"是不正确的, 这一点要特别注意。 第二个形式参数表示打开文件的
类型。关于文件类型的规定参见下表。
表 文件操作类型
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
字符
含义
────────────────────────────
"r"
"w" 创建文字文件只写
"a" 增补, 如果文件不存在则创建一个
"r+" 打开一个文字文件读/写
"w+" 创建一个文字文件读/写
"a+" 打开或创建一个文件增补
"b" 二进制文件(可以和上面每一项合用)
"t" 文这文件(默认项)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
如果要打开一个 CCDOS 子目录中, 文件名为 CLIB 的二进制文件, 可写成:
fopen("c:\ccdos\clib", "rb");
如果成功的打开一个文件, fopen()函数返回文件指针,否则返回空指针(NULL)。由此可判断文件打开是否成功。
打开文字文件只读
fclose()函数
fclose()函数用来关闭一个由 fopen()函数打开的文件 , 其调用格式为:
int fclose(FILE *stream);

这篇博客详细介绍了C语言中的文件输入输出函数,包括标准文件函数和非标准文件函数。标准文件函数涵盖文件的打开、关闭、读写等操作,如fopen()、fclose()、fprintf()、fscanf()等,适用于缓冲型文件操作。非标准文件函数如open()、close()、read()、write()等,是非缓冲型文件操作,最早应用于UNIX系统,但在DOS 3.0以上版本也可使用。文章还讨论了流的概念和文件指针,并提供了示例代码展示如何使用这些函数进行文件操作。
最低0.47元/天 解锁文章
3683

被折叠的 条评论
为什么被折叠?



