- 1、本文档共80页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章CIO流的标准库
本章内容 C++ I/O(输入/输出)流基本概念 文件 打开文件 文件的读写 输入流和输出流 格式化输入输出 什么是流? 从一个地方流到另一个地方,如水流、河流 iostreams 是同样的概念, 是从一个地方流到另一个地方的数据流 I/O流:数据在外部设备和内存之间的流动 Data Stream(数据流) Data Stream (数据流) Data Stream (数据流) I/O流类库 在C++输入?输出操作是通过C++系统提供的 完成I/O操作的一组类实现的。主要包括: 标准流类:处理与标准输入设备(键盘)和输出设备(显示器)关联的数据流 文件流类:处理与磁盘文件关联的数据流 字符串流类:利用内存中的字符数组处理数据的输入输出 异常类等:处理异常错误 I/O流类列表 文件的概念 二进制文件vs.文本文件 通常每个文件都有自己的格式,即有一组规则来确定其中字节的含义。 文件通常分为文本文件和二进制文件。 二进制文件vs.文本文件 一般都使用文本文件(字符I/O) 人类可读的 在不同系统间是可移植的 大多数信息被表示成字符 必须使用二进制文件 如:图像文件, 声音文件 文件操作 从一个输入文件读 从磁盘文件读取数据至内存 向一个输出文件写 将内存数据输出到磁盘文件 处理和操作文件 类型 ofstream 用于向文件写数据 类型 ifstream 用于从文件中读数据 类型 fstream 用于向文件写或从文件读数据 这些类都定义于头文件fstream 中 继承(inheritance) 文本文件I/O 使用流插入运算符 将各种基本类型数据写到文本文件 使用put 成员函数将单个字符写到文本文件 使用流提取运算符从文本文件读取各种基 本类型数据 使用get和 getline成员函数从文本文件读字符和字符串 检查文件打开成功与否? 检查文件打开成功与否方法: 判断ofstream 的流对象 fout的值 如果文件打开失败,流对象fout的值为0 如果文件打开成功,流对象fout的值为非0 文件打开不成功 选择之一是退出程序 ofstream fout; fout.open(“myfile.txt”); if(!fout )// fout不成功 { cout “不能打开文件\n”; exit(1); // 退出程序 } 注: exit( ) 函数属于cstdlib 库 关闭文件 当对文件操作完成后,应使用函数close( ) 关闭该文件 确保信息被保存 释放文件以便其他程序使用 写文件的另一种打开方式 当打开一个写文件时,缺省方式是创建一个新文件 当打开的文件已存在,文件原有内容清空 当打开一个旧文件,想要保留原有内容,并接着 在后面写,可用打开方式选项 app (append) 使用多个打开模式,中间用运算符“|”分隔 fout.open(“out.txt”, ios::out | ios::app ); //组合多个模式 文件路径 缺省方式在与程序同目录中寻找 从VC++运行,是project所在目录 运行 exe 文件,是exe文件所在的目录 ifstream fin; fin.open(“myfile.txt”); //相对文件路径 绝对文件路径这样表示 ifstream fin; fin.open(“c:\\mydata\\numbers.txt”); 练习 文件infile.txt中保存以空白符间隔的整数 编程序求此文件中所有整数之和 检测文件尾 如果读整个文件,即遇到文件尾结束读操作, 可以用下面两种方法处理: 调用成员函数 eof( ) 来检查是否到文件尾 如果到达文件尾,函数eof( ) 返回true, 否则返回false。 流提取运算符的结果可以被用作判断条件 如: while(fin x) 循环判断条件,此时会隐式地将它转化为bool类型的值。如果 输入操作成功,变量得到了正确的值,则转化成true。如果输入 不成功,如遇到文件结束标记(EOF),变量没有得到所需的值, 则转化为false。 // open file with fin // … int total = 0, num; fin num; //从文件读一个数 while ( !fin.eof( ) ){ total += num; fin num; //从文件读一个数 } // open file with fin // … int total = 0, num =
您可能关注的文档
- 第3章 动的物的觅食行为.ppt
- 第3章 怎样使用类和的对象.pptx
- 第3章 基础安的全技术.ppt
- 第3章 工业控的制系统信息安全技术与方案部署.ppt
- 第3章 数据类型、的运算符和表达式.ppt
- 第3章 数据类型运的算符与表达式.ppt
- 第3章 的PHP操作数据库_教学设计.doc
- 第3章 处的理器体系结构及组成.ppt
- 第3章 消费者行为理论的(完全版).ppt
- 第3章 的用户与用户组管理.pdf
- 初中七年级语文统编版七年级上册第13课《植树的牧羊人》课件-22.pptx
- 2024年珠光材料投资回报分析报告.docx
- 2024年弯曲试验机投资回报分析报告.docx
- 2024年家用缝纫机风险评估与管理报告.docx
- 数据治理及决策支持专用机房通用设备采购一期项目招标文件.pdf
- 膨胀蛭石矿物绝缘材料制品行业投资环境评估报告原创文章.doc
- solrcloud集群搭建lucene参考.pdf
- 城市智慧服务介绍简化版.pdf
- 依必安派特mulfingen gmbh co kghandbuch deutsch手册.pdf
- 《重大行政决策合法性审查工作规范》(DB3210T1180-2024).pdf
文档评论(0)