第十一章文件读写.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档