C++第十一讲文件.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
四. 标准 I/O 文件  有三个自动打开的文件支持程序的执行,它们是:标准输入stdin、标准输出stdout和标准错误输出stderr。即是说,这三个文件直接使用,不必对它们进行打开和关闭操作,系统启动后即自动打开了这三个文件,并为它们设置了文件指针;使用后也不必关闭,退出系统将自动关闭了这三个文件。 通常,stdin负责从终端键盘上读数据,stdout负责向终端屏幕上写数据,stderr负责在屏幕上显示错误信息。在支持I/O重定向的操作系统中,stdin和stdout可以被重定向:stdin是从键盘到文件,可以重定向为从文件到文件;stdout是从文件到显示器,可以重定向为从文件到文件。而stderr不能重定向,只能在屏幕上显示。 例如: fileindata //输入,从文件indata中输入数据到文件file中 这时file中所有的getchar、scanf等输入函数不再从键盘上接收数据,转而从文件indata 中读取数据,这就是输入重定向。而 fileoutdata //输出,文件file的输出内容写到文件outdata中 则file中所有putchar、printf等输出函数都把输出结果写到文件outdata 中。 这就是输出重定向。 注意这里讲的重定向与前面第三章介绍的I/O函数Cin和Cout相区别:Cinv1是默然从标准输入设备键盘上输入数据到变量v1中,而Coutv1则默然从标准输出设备显示器输出变量v1中的内容。 也可以输入输出同时重定向: fileindataoutdata file的输入不从键盘改而从文件indata来,文件indata的输出不送显示器,转而送文件outdata。可以理解为文件indata送两个地方:文件file和文件outdata。 五. fseek 文件随机定位函数。 fseek函数支持随机读写,流式文件可以顺序读写,实际上,也可以随机读写,关键在于控制文件的位置指针:如果位置指针按字节位置顺序移动,就是顺序读写;如果将位置指针按需要来移动到任意位置,则就是所谓随机读写。 fseek函数可以实现改变文件的位置指针。 流式文件即流文件,暂时可以这样理解:“流”的概念:C语言系统的文件不由记录组成,而是由字符(文本)或字节(二进制代码)组成的序列,称为流式文件,其顺序读写是默然的方法,可以用fseek函数进行随机读写。 fseek的调用形式为: fseek(fp,offset, origin); 下例是从一个磁盘文件顺序读入字符并在屏幕上显示的程序段: 例 11.4 ch=fgete(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } 其中的EOF是非显示字符,不能在屏幕上显示。由于字符的ASCII码值不可能有-1,因而EOF定义为 -1。当读入的字符值为 -1, 表示读入的不是正常字符, 而是文件结束标志。这只适用于文本文件。而二进制文件读入的二进制数据,其值有可能为-1,是值还是EOF,要feof()函数来判断。 feof()用来测试文件指针fp所指向的文件的当前状态是否为“文件结束”。称为文件尾测试函数。 feof(fp) 的返回值为1(真)时, 表示文件结束;否则返回“0” ,表示不是文件结束。 当顺序读入一个二进制文件中的数据, 可以编写程序段为: while(!feof(fp)) { c=fgetc(fp)}; ∶ } 当遇文件结束,feof(fp)的值为0,而!feof(fp)的值为“1”。这时读入一个字符的数据赋值整型变量 C,依此直到遇文件结束符, 使feof(fp)为 1,!feof(fp)为 0,不再执行循环。 这种方法也适用于文本文件。 2. fputc/putc fputc/putc函数把一字符写到磁盘文件上去, 调用形式为: fputc (ch,fp); 其中,fp是文件指针变量,调用fopen时的返回值;ch是要输出的字符,可以是一个字符常量,也可以是一个字符变量。 fputc将字符ch写到fp所指的文件中去,同时返回一个值:如果写成功,则返回值就是字符本身;如果写失败,则返回EOF。前面已讲,EOF是stdio.h中定义的符号常量,值为-1。 顺便提及: 第五章第三节讲函数putcha

文档评论(0)

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

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

1亿VIP精品文档

相关文档