- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.4.1 文件的顺序存取和随机存取 9.4 文件的定位 顺序存取和随机存取。 顺序存取的特点:是对文件的读写方式都是从文件的开始到文件的结束,读/写了第一个字节,才能读/写第二个字节,依次类推,如果想读/写文件的最后一个字节,必须先读写完该字节前面的所有字节。 随机存取的特点:是允许从文件的任何位置开始读写操作,文件操作的位置可以由程序控制。 9.4.2 rewind函数 9.4 文件的定位 rewind函数的调用格式为: rewind(文件指针);? 功能:把文件内部的位置指针移到文件的开头。 rewind的英文原意是重绕,所以可以简单的称rewind函数的功能是重绕。 例:使用函数将字符串“Welcome you”写入ASCII文件file_we.txt 中,并使用重绕回到文件首部,显示在屏幕上。 #include stdio.h #include process.h void main() { char string[]=welcome you; char display[15]; FILE *fp; if((fp=fopen(file_we.txt,w+))==NULL) { printf(cannot open this file \n); exit(1); } else { fputs(string,fp); /*写字符串到文件中 */ rewind(fp); /*重绕 */ fgets(display,15,fp); /*读入到内存 */ puts(display); /*输出到屏幕上 */ fclose(fp); } } 9.4.3 fseek函数 9.4 文件的定位 fseek函数也能够实现文件的定位,调用该函数的格式为: fseek(文件指针,位移量,起始点);? 功能:移动文件内部位置指针到实际参数指定的位置。 fseek(fp,-100L,2); 把文件位置指针从文件末尾移到离文件末尾100个字节处。 9.4.3 fseek函数 9.4 文件的定位 起始点有三种取值,0 、1和2,分别表示文件的三个位置:文件开始、当前位置和文件末尾。 位移量表示文件内部位置指针从起始点开始移动的字节数。 位移量必须是一个长整型数据,因此若使用常整数表示位移量时,必须加后缀“L”。 位移量是正整数,文件内部位置指针向文件末尾的方向移动;位移量是负整数,文件内部位置指针向文件首部的方向移动。 小结 ●(1) 在C语言中,文件被看成是“流”的序列,由一个一个的字节组成的数据流构成文件。由字符流组成的文件叫ASCII文件,由二进制流组成的文件叫二进制文件。 ● (2) 新的ANSI标准只支持缓冲文件系统,使用缓冲文件系统的原因是为了提高效率和延长外部设备的寿命。 小结 ●(4) 文件的操作的顺序是打开文件、读/写和关闭文件。文件可以按只读、只写、读写和追加四种操作方式打开,同时还必须指定文件的类型是二进制文件还是文本文件。 ●(3)在C语言中,对普通数据文件的所有操作都必须依靠文件类型指针来完成。要想对文件进行操作,首先必须将想要操作的数据文件与文件指针建立联系,然后通过这些文件指针来操作相应的文件。 小结 ●(5) C语言允许文件读写以字节、数据块或字符串为单位,还可以按指定的格式进行读写。 ● (6) 文件内部的位置指针可指示当前的读写位置,移动该指针可以对文件实现随机读写。 计算机程序设计C 第9章 文件 9.1 问题提出与程序示例 9.2 文件操作的基本方法和相关概念 9.3 文件的读写操作 9.4 文件的定位 9.1 问题提出与程序示例 调试一个排序的程序,要输入10个整数,但是程序有些逻辑错误,那我们就要不止一次的输入这10个整数。 解决方法? 将数据一次性地存储在一个文件中,调试程序时从该文件中读取数据到内存中。 9.2 文件操作的基本方法和相关概念 数据文件是一组数据的有序集合。 如果
文档评论(0)