- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计基础郑军红版—文件部分.doc
文件
10.1 文件类型指针的概念
计算机的主要功能是计算和存储数据,各种数据都是以二进制形式存储在计算机的辅助存储器上,而且相关的数据以集合的形式供系统存取,这种存储在外部介质上的数据集合称为“文件”。
10.1.1 文件数据的存储形式
文件中数据的存储形式有两种形式:一种是字符形式,另一种是二进制形式。
以字符形式存储数据的文件称为文本文件,字符可以是字母、数字、运算符等,每个字符通过相应的编码存储在文件中,常用的编码是ASCII码,即一个字符有一个ASCII代码,占用一个字节的存储空间。这种存储形式的缺点是占用空间大,比如存储一个整数12345,在这里就被看作是5个字符,因此需要用5个字节的存储空间。
以二进制形式存储数据的文件称为二进制文件,它是按照数据在内存中的存储形式原样存储数据的。如上面的整数12345在二进制文件中只需占用2个字节的存储单元。
10.1.2 文件的处理方法
C语言对文件的处理方法有两种:一种叫“缓冲文件系统”,一种叫“非缓冲文件系统”。
所谓缓冲文件系统是指系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。
从内存向外部存储器输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送出去。如果从外部存储器向内读入数据,则一次从磁盘文件将一批数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(给程序变量)。
所谓“非缓冲文件系统”是指系统不自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。
在Unix系统下,用缓冲文件系统来处理文本文件,用非缓冲文件系统来处理二进制文件。用缓冲文件系统进行的输入输出又称为高级(或高层)磁盘输入输出(高层I/O),用非缓冲文件系统进行的输入输出又称为低级(低层)输入输出系统。ANSI C标准决定不采用非缓冲文件系统,而只采用缓冲文件系统。即既用缓冲文件系统处理文本文件,也用它来处理二进制文件,也就是将缓冲文件系统扩充为可以处理二进制文件。
C语言提供了相应的文件操作函数,它们都是标准库函数,用它们可以实现对文件的读写、打开和关闭等操作。
本章主要学习掌握的是用缓冲文件系统处理文件。
缓冲文件系统中,关键的概念是“文件指针”。在对一个缓冲文件进行操作时,系统需要许多控制信息,如:文件名、文件当前的读写位置、与该文件对应的内存缓冲区的地址、缓冲区中未被处理的字符数、文件的操作方式等。缓冲文件系统为每一个文件定义一个FILE型的结构体变量来存放这些控制信息。FILE定义在头文件stdio.h中,声明如下:
Typedef struct
{
Short level; //缓冲区“满”或“空”的程度
Unsigned flags;//文件状态标志
Char fd;//文件描述符
Unsigned char hold;//如无缓冲区不读取字符
Short bsize;//缓冲区的大小
Unsigned char *buffer;//数据缓冲区的位置
Unsigned char *curp;//指针,当前的指向
Unsigned istemp;//临时文件,指示器
Short token;//用于有效性检查
}FILE;
有了结构体FILE类型以后,可以用它来定义若干个FILE类型的变量,以便存放若干个文件的信息。
FILE *fp;
Fp是一个指向FILE类型结构体的指针变量,通过该结构体变量中的文件信息能够访问该文件。也就是说,通过文件指针变量能够找到与它相关的文件。如有n个文件,一般应设n个FILE类型结构体的指针变量,使它们分别指向n个文件,实现对文件的访问。
10.2 文件的常用操作
10.2.1 文件的打开与关闭
进行文件读写之前,要先将文件打开;文件操作完毕后,要将文件关闭。
文件的打开
在C语言程序中,打开文件的操作用函数fopen()来实现,它的一般使用形式如下:
FILE *fp;
Fp=fopen(文件名,文件使用方式);
例如:fp=fopen(“fal”,”r”);
其中fal是要打开的文件名,此文件的使用方式为“读入”(r代表read,即读入),fopen函数开会指向fal文件的指针并赋给fp,或者说,fp指向fal文件。那么,在打开一个文件时,需要给出3条信息:需要打开的文件名;文件的使用方式(“读”还是“写”等);哪个指针变量指向被打开的文件。
注意:fopen函数返回一个指向要打开文件的指针,若未成功打开,则返回一个NULL(空)指针。
文件的使用方式有很多种。
R 为输入打开一个文本文件
W 为输出打开一个文本文件
A 向文本文件尾增加数据
Rb 为输入打开一个二进制文件
Wb 为输出打开一个二进制文件
Ab 向二进制文件尾增加数据
R+ 为读/写打开一个文本文件
W+ 为读/写建立一个新的文本
文档评论(0)