第8章 C++ IO流的标准库.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 =

文档评论(0)

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

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

1亿VIP精品文档

相关文档