当前课程知识点:C++语言程序设计进阶 > 第十一章 流类库与输入/输出 > 导学 > 导学
<h2 style="margin: 0px 0px 10px; padding: 0px; border-width: 0px 0px 1px; border-bottom-style: solid; border-bottom-color: #cccccc; font-weight: bold; font-size: 24px; color: #000000; font-family: Helvetica, arial, freesans, clean, sans-serif; letter-spacing: normal; text-transform: none;">I/O流的概念及流类库结构</h2>
<h3 style="margin-top: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; font-size: 18px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif;">程序与外界环境的信息交换</h3>
<ul style="margin-top: 15px; margin-bottom: 15px; padding-left: 30px; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22.3999996185303px;">
<li style="margin: 0px; padding: 0px; border: 0px;">当程序与外界环境进行信息交换时,存在着两个对象:程序中的对象、文件对象。 流</li>
<li style="margin: 0px; padding: 0px; border: 0px;">一种抽象,负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。</li>
</ul>
<h3 style="margin-top: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; font-size: 18px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif;">流对象与文件操作</h3>
<ul style="margin-top: 15px; margin-bottom: 15px; padding-left: 30px; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22.3999996185303px;">
<li style="margin: 0px; padding: 0px; border: 0px;">程序建立一个流对象</li>
<li style="margin: 0px; padding: 0px; border: 0px;">指定这个流对象与某个文件对象建立连接</li>
<li style="margin: 0px; padding: 0px; border: 0px;">程序操作流对象</li>
<li style="margin: 0px; padding: 0px; border: 0px;">流对象通过文件系统对所连接的文件对象产生作用。</li>
</ul>
<h3 style="margin-top: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; font-size: 18px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif;">提取与插入</h3>
<ul style="margin-top: 15px; margin-bottom: 15px; padding-left: 30px; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22.3999996185303px;">
<li style="margin: 0px; padding: 0px; border: 0px;">读操作在流数据抽象中被称为(从流中)提取</li>
<li style="margin: 0px; padding: 0px; border: 0px;">写操作被称为(向流中)插入。</li>
</ul>
<h3 style="margin-top: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; font-size: 18px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif;">流类库结构</h3>
<p style="margin: 10px 0px 15px; padding: 0px; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22.3999996185303px;"><img src="/static/11-1.png" style="margin: 0px; padding: 0px; border: 0px;" /></p>
<h3 style="margin-top: 20px; padding: 0px; border: 0px; -webkit-font-smoothing: antialiased; font-size: 18px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif;">流类列表</h3>
<p style="margin: 10px 0px 15px; padding: 0px; border: 0px; color: #333333; font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: 14px; line-height: 22.3999996185303px;"><img src="/static/11-2.png" style="margin: 0px; padding: 0px; border: 0px;" /></p>
大家好
欢迎继续学习C++语言程序设计
这一章由我和李超老师
一起为大家介绍
流类库与输入输出
在此之前呢
我们程序中处理的数据
都是放在内存中的
放在内存中的数据呢
一旦程序运行结束
它就都消失了
不能永久存储
如果我们需要将数据永久存储
留待以后继续使用的话呢
那么该怎么办呢
显然我们希望能够将数据
存入永久存储设备
比如说存到硬盘文件中
那么在C++中
如何做到这一点呢
李老师
在C++中
它就没有输入输出语句吗
对吧
和C语言一样
C++里没有专门的输入输出语句
但是呢
C++里有一个好东西
它叫IO流类库
它就是用来负责
进行数据的输入和输出的
是这样啊
看来确实有好东西
就是有预先定义好的软件包
是这个意思吧 对
那么这些
预先定义好的软件包里面
都包括哪些东西呢
为什么它的名字叫什么
输入输出流类库
这是个什么意思呢
大家可能经常会听说到
IO流类库这个词
那么类和库
大家都应该很清楚
是什么意思了
那IO是什么意思
IO就是input和output的缩写
也就是输入输出的意思
那剩下一个流字
是什么意思呢
流其实就是
IO流的一个最核心的概念
在C++里
把数据从一个空间
或者是一个对象
流入到另外一个空间或对象
抽象为流
这个听起来还是比较抽象
同学们一定都非常关心
那么文件读写
也就是我们要将数据存到文件
再读出来
和这个IO流有个什么关系呢
我们通过IO流去实现文件读写吗
是的
我们可以通过IO流
来实现文件读写
具体而言呢
就是在程序中创建一个流对象
然后把这个流对象
和你要操作的这个文件对象
关联起来
在程序里头
通过操作这个流对象
你就去操作这个文件的对象了
也就是能够实现文件的读写了
那文件中呢
需要对它进行什么样的操作
和处理
在流对象中
你就可以完成什么样的操作
和处理
就是这样
那看起来真是不错
这样我们这一章呢
就要给大家介绍
IO流的基本概念
以及进行文件读写的基本方法
给大家看一些文件读写的例题
大家通过例题
就可以了解
怎么样将
数据持续化地写入文件中
又怎么样能够从文件中
把数据再读取出来
那这一章呢
将由我给大家介绍基本概念
基本语法
以及一些验证性的例子
由李超老师
给大家介绍一个综合实例
还有实验指导
在这一章的实验中呢
我们大家将会去了解一下
各种不同的输出格式控制
此外
还会练习一下
我们刚刚学到的
怎么样去读写一个文件
在综合实例中呢
就像刚才郑老师说的一样
我们在之前呢
所有的帐户信息
一旦程序关闭就都没有了
那么在综合实例中
我们将练习使用一下文件
然后把帐户信息
用户的操作
还有关于日期的一些信息呢
都把它记录到文件里
那么下次再重新运行程序的时候
这些信息就可以被重新加载了
这样呢
同学们听完这些
是不是都已经急不可耐了
确实通过IO流的方式
我们就可以将我们以前
存在内存中的数据
放在持续的存储设备中了
接下来呢
由我和李超老师
带领大家一起
来学习如何做到这一些
-导学
--导学
-继承的基本概念和语法
-第七章 继承与派生--继承的基本概念和语法习题
-继承方式
-第七章 继承与派生--继承方式
-基类与派生类类型转换
-第七章 继承与派生--基类与派生类类型转换
-派生类的构造和析构
--派生类的构造函数
--派生类的析构函数
--第七章 继承与派生--派生类的构造和析构
-派生类成员的标识与访问
--虚基类
-第七章 继承与派生--派生类成员的标识与访问
-小结
--小结
-综合实例
--第七章综合实例
-实验七
--实验七
-导学
--导学
-第八章 多态性--导学
-运算符重载
--运算符重载的规则
-第八章 多态性--运算符重载
-虚函数
--虚函数
--虚析构函数
--虚表与动态绑定
-第八章 多态性--虚函数
-抽象类
--抽象类
--第八章 多态性--抽象类
-override与final
-第八章 多态性--override与final
-小结
--第八章小结
-综合实例
--第八章综合实例
-实验八
--实验八
- 第八章讲义
-导学
--导学
-模板
--函数模板
--类模板
-第九章 模板与群体数据--模板
-线性群体
--线性群体的概念
-第九章 模板与群体数据--线性群体
-数组
--数组类模板
-链表
--链表类模板
-第九章 模板与群体数据--链表
-栈
--栈类模板
--栈类模板课后习题
--例9-9 栈的应用课后习题
-队列
--队列类模板
-第九章 模板与群体数据--队列
-排序
--排序概述
--插入排序
--选择排序
--交换排序
-第九章 模板与群体数据--排序
-查找
--查找
--查找课后习题
-小结
--小结
-综合实例
--综合实例
-实验九
--实验九
- 第九章讲义
-导学
--导学
-泛型程序设计及STL的结构
--STL简介
-第十章 泛型程序设计与C++标准模板库--泛型程序设计及STL的结构
-迭代器
--迭代器
-第十章 泛型程序设计与C++标准模板库--迭代器
-容器的基本功能与分类
-第十章 泛型程序设计与C++标准模板库--容器的基本功能与分类
-顺序容器
--顺序容器的特征
--第十章 泛型程序设计与C++标准模板库--顺序容器
-关联容器
--集合
--映射
-第十章 泛型程序设计与C++标准模板库--关联容器
-函数对象
--函数对象
--函数适配器
-算法
--算法
-小结
--第十章小结
-综合实例
--综合实例
-实验十
--实验十
- 第十章讲义
-导学
--导学
-I/O流的概念及流类库结构
-第十一章 流类库与输入/输出--I/O流的概念及流类库结构
-输出流
--输出流概述
--向文本文件输出
--向二进制文件输出
--向字符串输出
-第十一章 流类库与输入/输出--输出流
-输入流
--输入流概述
--输入流应用举例
--从字符串输入
-第十一章 流类库与输入/输出--输入流
-输入/输出流
--输入/输出流
-第十一章 流类库与输入/输出--输入/输出流
-小结
--小结
-综合实例
--综合实例
-实验十一
--实验十一
- 第十一章讲义
-导学
--第12章导学
-异常处理的思想与程序实现
-第十二章 异常处理--异常处理的思想与程序实现
-异常处理中的构造与析构
-第十二章 异常处理--异常处理中的构造与析构
-标准程序库异常处理
-第十二章 异常处理--标准程序库异常处理
-小结
--第12章小结
-综合实例
--综合实例
-实验十二
--实验十二
- 第十二章讲义