- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c及c程序设计第13章磁盘文件操作[io系统]
第十三章 磁盘文件操作(I/O系统)
;13.1 文件概述
13.2 控制台I/O
13.3 ANSI 文件I/O系统
;;13.1.2 流的概念
ANSI C的文件系统适用于多种设备,如终端、磁盘和磁带等设备。
根据文件存储形式的不同,有两种类型的流:文本流和二进制流。
1. 文本流
文本流是一个ASCII码字符序列。根据具体环境的需要,可能会有一定的字符要进行转换。
2. 二进制流
二进制流是一组字节序列。它与设备之间传递的数据存在一一对应的关系,即没有任何字符的转换。 ;13.1.3 缓冲文件系统和非缓冲文件系统
C语言支持两种文件系统:缓冲文件系统和非缓冲文件系统。
所谓缓冲文件系统(buffered file system) 是指在进行I/O操作时,系统自动为每个打开的文件开辟一个内存缓冲区。
所谓非缓冲文件系统(unbuffered file system)是指系统不自动开辟内存缓冲区,而是由程序自己为每个文件设定缓冲区。;13.2 控制台I/O;2. 读写字符串
用于控制台读写字符串的函数为gets()和puts()。它们的原型如下:
char *gets(char *);
int puts(char *);
并且都在头文件stdio.h中说明。
gets()函数从键盘读入一个字符串,放到指针参数指定的地址中。
puts()函数的功能是在屏幕上显示一字符串,后跟一个新行符。;13.2.2 格式化的控制台I/O
除了前面所介绍的简单控制台I/O函数以外,C标准函数库中还有两个格式化输入输出函数:printf()和scanf()。 ;13.2.3 标准设备文件及I/O改向
当进行输入输出操作时,一般输入设备为键盘,输出设备为显示器。这是系统规定的,称这些设备为标准设备。
标准设备文件的改向操作,是在执行用户程序文件时,用改向操作符实现的。有两个改向操作符,它们是:
标准输入文件改向;
标准输出文件改向。;13.3 ANSI 文件I/O系统;13.3.1 文件结构类型和文件指针
首先引入一个新的数据类型,即文件结构类型。
在ANSI 文件I/O系统中,每个被使用的文件,都在内存开辟一个区,用于存放文件的相关信息,如文件名、文件状态、文件缓冲区位置以及当前的读写位置等。
指向FILE结构的指针称为文件指针。文??指针变量定义的一般形式为:
FILE *文件指针名;;13.3.2 打开文件和关闭文件
文件操作的总流程是:打开文件→操作文件→关闭文件。
所谓打开文件,就是把一个流同一个文件联系起来,使得能够进行文件的输入和输出操作。 ;1. 文件打开函数fopen()
打开文件是通过函数fopen()实现的。此函数要完成下列两个功能:
第一,打开一个流并把它同一个需要打开的文件联系起来;
第二,返回该文件的文件指针。
fopen()函数的原型如下:
FILE *fopen(char *filename, char *mode);
; 用“r”模式打开的文件,只能用于向计算机输入数据(读文件),不能向该文件输出数据(写文件)。此模式要求所要打开的文件必须是已经存在,否则在打开时出错。
用“w”模式打开的文件只能用于向文件写数据,不能用来向计算机输入数据。
用“a”模式打开的文件,可以向文件的末尾添加数据。
用“r+”、“w+”和“a+”打开的文件,既可以用作写也可以用作读。 ;2. 文件关闭函数 fclose()
函数fclose()用于关闭用fopen()打开的文件。
函数fclose()的原型为:
int fclose(FILE *fp);
这里fp是调用fopen()时,它返回的文件指针。
;13.3.3 文件的读和写
1. 函数fgetc()和fputc(函数getc()和putc())
函数fgetc()
此函数的功能是,从指定文件读入一个字符。它的原形为:
int getc(File *fp);
fp为文件指针。 ; 函数fputc()
此函数的功能是,向指定文件写一个字符。它的原型为:
int putc(int ch, FILE *fp);
文档评论(0)