海口经济学院信息工程学院C++语言程序设计课件 第十章 输入、输出流.ppt

海口经济学院信息工程学院C++语言程序设计课件 第十章 输入、输出流.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 输入、输出流 10.1 I/O流的概念 10.2 文件流 10.3 文件流应用举例 第10章 输入、输出流 教学目标: 1.掌握流的概念、输入及输出流; 2.学会应用流文件。 教学重点: 1. I/O流和文件的应用 教学难点: 1.流文件应用的理解。 10.1 I/O流的概念 10.1.1 流的概念 10.1.2 输出流 10.1.3 输入流 10.2 文件流 10.2.1 输出文件流 10.2.2 输入文件流 10.1.1 流的概念 10.2 文件流 10.2.1 输出文件流 10.2.2 输入文件流 10.2.1 输出文件流 10.3 文件流应用举例 例10.13 面向对象的C++程序设计的固定框架 小结: 通过本章学习,了解流库的结构和用途,掌握流的概念、输入及输出流;学会应用流文件。 思考题: 1.输入流和输出流的区别; 2.什么是文件指针? 作业题: 1.编写一个程序,用于统计一个文件中某个字符的数值; 2.编写一个程序,用于将任意两个文件合并为一个文件。 文本文件的顺序读写: 顺序读写可用C++的提取运算符()和插入运算符()进行。 【例10.7】复制文件。 【例10.8】按行复制文本文件。 【例10.9】文本式数据文件的创建与读取数据。 资源获取是由构造函数实现,而资源释放是由析构函数完成。所以与内存动态分配一样,由文件重构对象放在构造函数中,把对象存入文件则放在析构函数中。参见10.6节。 对二进制文件进行读写的成员函数: istreamistream::read(char *,int); //从二进制流提取 istreamistream::read(unsigned char*,int); istreamistream::read(signed char *,int); //第一个参数指定存放有效输入的变量地址, //第二个参数指定提取的字节数, //函数从输入流提供指定数量的字节送到指定地址开始的单元 ostreamostream::write(const char *,int); //向二进制流插入 ostreamostream::write(const unsigned char *,int); ostreamostream::write(const signed char *,int); //第一个参数指定输出对象的内存地址, //第二个参数指定插入的字节数, //函数从该地址开始将指定数量的字节插入输入输出流 文件结束判断: 读函数并不能知道文件是否结束,可用状态函数int ios::eof()来判断文件是否结束。必须指出系统是根据当前操作的实际情况设置状态位,如需根据状态位来判断下一步的操作,必须在一次操作后立即去调取状态位,以判断本次操作是否有效。 【例10.10】创建二进制数据文件,以及数据文件的读取。这两项操作设计为成员函数。给出与【例10.9】不同的读写方式: 二进制文件优点: 可以控制字节长度,读写数据时不会出现二义性,可靠性高。同时不知格式是无法读取的,保密性好。文件结束后,系统不会再读(见eofbit的说明),但程序不会自动停下来,所以要判断文件中是否已没有数据。如写完数据后没有关闭文件,直接开始读,则必须把文件定位指针移到文件头。如关闭文件后重新打开,文件定位指针就在文件头。 文件的随机访问:   在C++中可以由程序控制文件指针的移动,从而实现文件的随机访问,即可读写流中任意一段内容。一般文本文件很难准确定位,所以随机访问多用于二进制文件。 如【例10.9】中对象中两个字符串是按实际串长存放的,不是按数组元素来存放的,而【例10.10】中是按数组长度来存放的,每个对象数据长度固定,所以便于随机访问。 在ios类中说明了一个公有枚举类型: enum seek_dir{ beg=0, //文件开头 cur=1, //文件指针的当前位置 end=2 //文件结尾 }; 随机访问指针控制字: 输入流指针控制字设置成员函数: istreamistream::seekg(streampos); //指针直接定位 istreamistream::seekg(streamoff, ios::seek_dir); //指针相对定位 long istream::tellg(); //返回当前指针位置 流的指针位置类型streampos和流的指针偏移类型streamoff定义为长整型,也就是可访问文件的最大长度为4G 例:datafile.seekg(-20L,io

文档评论(0)

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

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

1亿VIP精品文档

相关文档