- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章文件读写.doc
第十一章 文件读写
【学习目标】
本章将介绍在C语言中如何读写文件。学习要点包括如下几点:
(1)文件的打开与关闭。
(2)单字符的读写。
(3)字符串的读写。
(4)格式化读写
(5)随机读写文件
【学习导航】
本章的在整个课程中的位置如图11-1所示。
图11-1 本章学习导航
11.1什么是文件
在前面的程序设计中,我们使用了很多输入和输出,这些输入输出的数据都是保存在内存中的,也就是说如果电脑断电后这些数据就消失了。但在实际使用中,比如在学生成绩管理系统中,我们希望学生信息、学生成绩这些数据能够永久保存,即电脑断电重启后仍然能够访问。这就需要保存数据到磁盘文件中,即涉及到对文件的操作。事实上,我们电脑中任何持久化的数据都是保存在文件中的,比如常用的扩展名为“.doc”的word文件, 以“.avi”为扩展名的视频文件,普通的以“.txt”为扩展名的文本文件。都是文件。而不同的扩展名,代表不同的文件类型。不同的文件类型需要用不同的程序打开,比如.txt类型的文件可以使用记事本打开;.avi类型文件可以使用迅雷看看等视频软件打开。
从计算机的角度看,每一个文件都是一堆的“0”和“1”组合成的数据集合。一个文件如果能够正常打开,看到里面的正确数据,则说明文件的数据没有损坏。否则就说明文件被破坏了,比如我们从上网下载一个视频文件,但无法播放。
如果一个文件可以按照ASCII码或者其他的基本编码方式将其中的0和1解析成我们可以读懂的字符,那么这类文件就是无格式文件,因为它只有简单的字符编码格式。否则就是有格式文件,需要按某种特点的格式去解析才能获取正确的数据。
有一个简单的方法可以判断是否为无格式文件:用记事本打开这个文件,如果能正确显示内容,没有乱码,则是无格式文件。
11.2文件的打开与关闭
任何关于文件的操作都要先打开文件,再对文件进行读写,操作完毕后,要关闭文件。
1. 文件类型指针
在操作文件之前,应先定义文件变量指针:
FILE *fp1;
按照上面的定义,fp1为指向结构体类型的指针变量,指向一个可操作的文件,今后对文件的访问,会转化为针对文件变量指针的操作。
( 知识链接—变量的直接访问和间接访问
C语言为每个被使用的文件在内存开辟一块用于存放上述信息的小区,利用一个结构体类型的变量存放。该变量的结构体类型由系统取名为FILE,在头文件stdio.h中定义如下:
typedef struct{
int_fd; /*文件号*/
int_cleft; /*缓冲区中的剩余字符*/
int_mode; /*文件的操作模式*/
char*_next; /*下一个字符的位置*/
char*_buff; /*文件缓冲区的位置*/
} FILE; 2.文件的打开
打开文件的函数:
FILE *fopen(char *fname,char *mode)
fopen()打开一个fname指向的外部文件,返回与它相连接的流。fname是一个合法的文件名,还可以指明文件路经。路径分绝对路径和相对路径两种:
绝对路径:是指从根目录开始算起的路径。比如a.txt放在c盘下的test目录下,那么它的绝对路径就是“c:\\test\\a.txt”。
相对路径:是指从程序运行所在目录算起的路径。比如我们的程序在c:\\test下,那么要访问a.txt,可以直接使用“a.txt”来访问。
对文件的操作模式由mode决定,mode也是字符串,由表11-1给出mode的取值表。
表11-1 mode的取值表
Mode 含义 r 打开一个文本文件只读 w 打开一个文本文件只写 a 打开一个文本文件在尾部追加 rb 打开一个只读的二进制文件 w b 打开一个只写的二进制文件 如表11- 1所示,文件的操作方式有文本文件和二进制文件两种,打开文件的方法如下例所示:
//...
FILE *fp;
if ((fp=fopen(test.txt,w))==NULL)
{
/*创建一个只写的新文本文件* /
printf(无法打开文件 \n);
exit(0);
} 这种方法能发现打开文件时的错误。在开始写文件之前检查诸如文件是否有写保护,磁
盘是否已写满等,因为函数会返回一个空指针NULL,NULL值在stdio.h中定义为0。事实上打开文件是要向编译系统说明三个信息:①需要访问的外部文件是哪一个。②打开文件后要执行读或写即选择操作方式。③确定哪一个文件指针指向该文件。对打开文件所选择的操作方式来说,一经说明不能改变,除非关闭文件后重新打开。是只读就不能对其写操作,对已存文件如以新文件方式打开,则信息必丢失。
3. 文件的关闭
C
您可能关注的文档
- 第七章气压场与风场之垂直结构(Verticalstructureofpressureand.doc
- 第七章白细胞血型(教案).doc
- 第七章表面现象表面现象基本概念表面(surface)与界面(interface.doc
- 第三军医大学科研设备招标公告根据学科平台建设需要,对科研仪器.doc
- 第三单元牛顿运动定律的应用——匀速圆周运动初探一、教法建议.doc
- 第三章.ppt-欢迎来到重庆邮电大学理学院.ppt
- 第三章GSM无线接口理论-与非网.doc
- 第三章VisualBasic图形应用程序设计-Read.ppt
- 第三章循环结构.ppt-信息工程学院-黑龙江农业经济职业学院.ppt
- 第三章心理安全-广西师范大学出版社.ppt
文档评论(0)