- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 I/O系统和文件 流 格式化I/O 文件流 流 流的概念 预定义的C++流 重载I/O运算符 流 流是一种生成或使用信息的抽象。C++的I/O系统把流连接到物理设备上,它的一个重要特点是不论它所连接的设备是什么,都采用相同的方式进行操作。 流有两种基本形式:文本流和二进制流。 文本流用于传递字符 二进制流用于传递所有数据类型的数据。 对流可以进行的最基本的操作是:打开和关闭。打开流可以让流连接到文件,而关闭操作可以让流断开与文件的连接 预定义的C++流 cin 标准输入流 cout 标准输出流 cerr 连接到标准输出的流,用于写入调试和错误信息 采用非缓冲的方式 clog 连接到标准输出的流,用于写入调试和错误信息 以缓冲的形式工作 重载I/O运算符 由于“”的作用是向流中插入,“”的作用是从流中提取,所以把重载这两个运算符的函数称为插入函数和提取函数。 插入函数的通式: ostream operator(ostream stream, 类名 obj) { //需要输出数据的相关代码 return stream; } 定义提取函数的通式是: istream operator(istream stream, 类名 obj) { //需要输入数据的相关代码 return stream; } 创建一个插入函数 定义一个是友元函数的插入函数 定义提取函数 格式化I/O 使用ios成员函数进行格式化输入输出 使用操控符实现格式化输入输出 使用ios成员函数进行格式化输入输出 所有的流都有一套与它相关的格式标识,这些标识用于格式化流中的数据。 类ios就定义了一个fmtflags数据成员,这个数据成员以枚举的方式定义了很多的常量来表示输出的格式。 fmtflags掩码枚举中定义的格式标识 ios中定义的常用成员函数 简单使用ios进行格式化输出 取消与测试输出格式的设置 使用width, precision和fill进行格式设置 使用操控符实现格式化输入输出 操控符就是一系列的函数,这些函数可以包含在I/O表达式中更改流的格式参数 使用操控符 用户自定义操控符 与C++预定义的操控符一样,可以定义输入用的操控符,也可以定义输出用的操控符。 定义输出操控符的方法如下: ostream 操控符名(ostream stream) { 用户代码; return stream; } 定义输入操控符的方法如下: istream 操控符名(istream stream) { 用户代码; return stream; } 建立一个输出操控符set和一个输入操控符prompt 文件流 打开和关闭文件 读写文本文件 读写二进制文件 其他I/O函数 文 件 流 为了不同的目的,可以使用3种流:文件输入流、文件输出流和文件输入/输出流。 它们分别由类ifstream, 类ofstream和fstream定义 打开文件 在定义了流之后,就可以在流上执行open操作来实现文件的打开。 每种流都有这个成员函数,惟一的区别是参数的取值不同。 第一个参数是一个指向字符的指针,用于传入表示文件名的字符串; 第二个参数指定文件的打开模式,不同流的open成员函数的这一项取值互不相同。 open函数原型如下: void ifstream::open(const char *filename, ios::openmode); void ofstream::open(const char *filename, ios::openmode); void fstream::open(const char *filename, ios::openmode); 文件打开模式的取值 关闭文件 在打开文件并对文件进行了相关的操作之后,必须对控制流执行关闭操作,就是执行相关流的close成员函数。 close成员函数没有参数,也没有返回值。 读写文本文件 使用“”和“”运算符 读写文本文件的例子 读写二进制文件 为了能够存储文本文件不能够存储的非格式化信息,就需要使用二进制文件。 创建二进制文件的方法 以ios::binary模式创建文件,并采用这种方法对文件进行读取。 二进制文件不可以使用“”和“”进行输入输出,为了实现输入输出可以使用下面的两种方法:一是使用成员函数put和get;二是使用成员函数read和write。 put和get 使用put和get可以实现对流中单个字符的输入和输出。 get函数和put函数的函数原型是: istream get(char ch); ostream put(char ch); 其中 get函数从istream中读取一个字符放置在ch中,并返回对流的引用。如果到达流的末尾,就会返回一个false; 而put()函数将ch
您可能关注的文档
- Visual C#.NET程序设计教程 第2版 教学课件 作者 罗福强 白忠建 杨剑 C# Ch8(人邮).ppt
- Visual C#.NET程序设计教程 第2版 教学课件 作者 罗福强 白忠建 杨剑 C# Ch9(人邮).ppt
- Visual C#.NET程序设计教程 第2版 教学课件 作者 罗福强 白忠建 杨剑 C# Ch11(人邮).ppt
- Visual C#.NET程序设计教程 第2版 教学课件 作者 罗福强 白忠建 杨剑 C# Ch12(人邮).ppt
- Visual C#.NET程序设计教程 第2版 教学课件 作者 罗福强 白忠建 杨剑 C# Ch13(人邮).ppt
- Visual C#.NET程序设计教程 第2版 教学课件 作者 罗福强 白忠建 杨剑 C# Ch14(人邮).ppt
- Visual C#2005程序设计教程 教学课件 作者 崔淼 陈明非 第1章 Visual C Sharp概述.ppt
- Visual C#2005程序设计教程 教学课件 作者 崔淼 陈明非 第2章 C Sharp语法基础.ppt
- Visual C#2005程序设计教程 教学课件 作者 崔淼 陈明非 第3章 顺序结构程序设计.ppt
- Visual C#2005程序设计教程 教学课件 作者 崔淼 陈明非 第4章 选择结构程序设计.ppt
最近下载
- 厦门东部三期垃圾焚烧发电厂项目环境影响报告书.pdf
- 2022火力发电厂化学系统智能化设计导则.docx
- MQY-202使用说明V1.2(增加CPA标志及使用说明).pdf VIP
- 国际课程课件系列之物理boardworks 5. Momentum v1.1.ppt
- 豫新船舶公司(原泥矶船厂)技术改造项目环评(新版环评)环境影响报告表.pdf
- 五年级下册综合实践活动课件-中国结——鞭炮结 全国通用 20张.pptx
- 企业风险防控清单.pdf
- 《风险管理》教案.docx
- 幼儿园保教设施设备配标准(2023版).doc
- INOVANCE汇川-中型PLC编程软件使用手册-AM400 AM600 AP700 AC700 AC800中文.pdf
文档评论(0)