- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第11章;第11章文件及其应用;11.1文件的引入;【引例】对一个班级学生成绩进行处理,包括学生信息的多次输入与修改、处理、输出等。
问题分析:
本例要求多次对学生的信息输入,如果每次都是从键盘输入这些成批的数据,一方面数据输入的工作量大,另一方面很容易产生差错。
因此,要解决这一类问题,就必须采用数据文件的方法来处理。;1.文件的概念
“文件”—是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。
当有大量数据输入时,通过编辑工具可以事先建立输入数据文件,程序运行时从指定的文件中读取数据,从而实现数据“一次输入,多次使用”的效果。同样,当有大量数据输出时,也可将其输出到指定文件,供随时查看。
;2.文件的类型
在程序设计中,主要用到两种类型的文件:程序文件和数据文件。
程序文件:包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容是程序代码。
数据文件:文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序运行过程中供读入的数据。如一批学生的成绩数据,或货物交易的数据等。;2.文件的类型
C语言程序把文件分为ASCII文件和二进制文件。
ASCII文件又称文本文件,每一个字节存放一个字符的ASCII码,便于对字符进行逐个处理,但一般占用存储空间较多;
二进制文件中的数据在内存中是以二进制形式存储的,占用存储空间较少。;2.文件的类型
字符一律以ASCII形式存储
数值型数据既可以用ASCII形式存储,也可以用二进制形式存储
如有整数10000,如果用ASCII码形式输出到磁盘,则在磁盘中占5个字节(每一个字符占一个字节),而用二进制形式输出,则在磁盘上只占4个字节(用VC++时)3.文件的读写
输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象地称为流(stream),即数据流。流表示了信息从源到目的端的流动。
在程序中,当调用输入函数从文件中输入数据赋给程序中的变量时,这种操作称为“输入”或“读”;当调用输出函数把程序中的变量的值输出到文件中时,这种操作称为“输出”或“写”。;4.文件的存取方式
文件输入输出方式也称“存取方式”。
C语言中,文件有两种存取方式:顺序存取和直接存取(也叫随机存取)。
顺序存取文件的特点是:每当“打开”文件进行读或写操作时,总是从文件的开头开始,从头到尾顺序地读/写;
直接(随机)存取文件的特点是:可以通过C语言的库函数去指定开始读/写的字节号,然后直接对此位置上的数据进行读/写操作。;在C语言中用一个指针变量指向一个文件,这个指针称为文件指针,通过文件指针就可对它所指的文件进行各种操作。定义文件指针的一般形式:
FILE*指针变量名;
如:FILE*fp;
表示fp是指向FILE结构的指针变量,通过fp即可找到存放某个文件信息的结构变量,然后按结构变量提供的信息找到该文件,实施对该文件的操作。;声明FILE结构体类型的信息包含在头文件“stdio.h”中
一般设置一个指向FILE类型变量的指针变量,然后通过它来引用这些FILE类型变量;FILE*fp1,*fp2,*fp3;;11.2.1文件的打开
对文件读写之前应该“打开”该文件,在使用结束之后应“关闭”该文件。
所谓打开文件,实际上是建立文件的各种有关信息,并使文件指针指向该文件,以便进行其它操作。
关闭文件则断开指针与文件之间的联系,也就是禁止再对该文件进行操作。;C语言中文件操作都是由库函数来完成的。下面介绍主要的文件操作函数。
1.文件的打开
在编写程序时,在打开文件的同时,一般都指定一个指针变量指向该文件,也就是建立起指针变量与文件之间的联系,这样就可以通过该指针变量对文件进行读写
FILE*fp;;1.文件的打开
文件的打开使用fopen函数,其调用的一般形式:
文件指针名=fopen(文件名,使用文件方式);
其中:
“文件指针名”必须是被说明为FILE类型的指针变量;
“文件名”是被打开文件的数据文件名,是字符串常量或字符串数组;
“使用文件方式”是指文件的类型和操作要求。;1.文件的打开
通常将fopen函数的返回值赋给一个指向文件的指针变量。
如:FILE*fp;
fp=fopen(”a1”,”r”);
其意义是在当前文件夹下打开文件a1,只允许进行“读”操作,并使fp指向该文件;1.文件的打开
在打开一个文件时,通知C编译系统以下3个信息:
①需要访问的文件的名字
②使用文件的方式(“读”还是“写”等)
③让哪一个指针变量指向被打开的文件
使用文件方式参见下表;文件使用方式;
文档评论(0)