当前课程知识点:C++语言程序设计进阶 >  第十一章 流类库与输入/输出 >  输入流 >  输入流概述

返回《C++语言程序设计进阶》慕课在线视频课程列表

输入流概述在线视频

输入流概述

输入流概述

重要的输入流类

构造输入流对象

使用提取运算符从文本文件输入

输入流相关函数



下一节:输入流应用举例

返回《C++语言程序设计进阶》慕课在线视频列表

输入流概述课程教案、知识点、字幕

大家好

欢迎继续学习C++语言程序设计

这一节呢

我为大家概要性地介绍一下

输入流类

在C++中

有三个最重要的输入流类

这三个最重要的输入流类呢

是istream

这个类最适合用于

顺序文本模式的输入

像我们已经熟悉的cin

就是这个类的一个实例

这个类的一个预定义好的对象

另外呢

我们还可以使用ifstream

去进行磁盘文件的输入

istringstream呢

是用来从内存中的一个字符串中

输入信息的

这种字符串输入流类

要使用输入流类

那首先就需要构造

输入流类的对象

构造输入流类的对象呢

也有两种不同的办法

一种是在构造

这个ifstream对象的同时

在这个参数表中

给出一个实际的文件名作参数

这样呢

在构造这个输入流类对象的同时

就将这个对象

与文件关联起来了

也就是同时将这个文件打开了

像这样关联和打开完了以后呢

我们立刻就可以用

这个输入流对象去操纵某个

文件的输入的时候呢

可以用它的open函数

去打开这个文件

打开文件的同时呢

也就将这个文件

与这个ifsteam对象关联起来了

然后我们就可以用这个对象

比如说这里面的这个myFile

去从文件中读取信息了

不管是我们在构造对象时

直接给出文件名

还是在构造了对象以后

再关联和打开文件

我们都可以指定文件的模式

文件的打开模式呢

就是ios_base里面预定义好的

这些常量

像ifsream

这个输入文件流类的对象

它打开文件的时候

打开模式

默认就是ios_base::in

它是默认是输入方式

所以这个in它可以缺省 不写

另外你可以指定

如果是二进制文件的话

你可以指定它是binary的

这些可以共存

用按位或操作把它连接起来

就可以了

如果我们打开的文件

是个文本文件

这个时候我们就可以使用

提取运算符

从文本文件中输入

这是最方便的一种输入方式

那么大家在前面的习题中

已经学会了用提取运算符

从键盘输入信息

实际上

键盘呢也被系统看作

一个文本文件

提取运算符呢

对于所有C++的标准数据类型

都是预先重载好了的

都可以作用于标准的数据类型

如果我们需要使提取运算符

能够作用于类的对象

我们就要为这个类

去重载提取运算符

那么这个时候

只能重载为类外的非成员函数

提取运算符呢

它是从一个输入流对象

获取字节的最容易的方法

ios中的很多操纵符呢

都可以用于输入流

但是其中只有少数几个

对输入流对象

具有实际的影响

其中最重要的就是进制操纵符

也就是说你可以指定

是按照十进制 八进制

还是十六进制输入数据

那么其他更多的

控制格式的操纵符呢

我不建议大家

在进行提取运算的时候去使用

为什么呢

因为通常来讲

输入数据的时候

你的格式控制越简单越好

如果你对输入数据的格式要求得过于复杂

那么用户从键盘输入

就感觉到比较麻烦

或者准备

这个用于输入的

磁盘上的文本文件的时候呢

也会觉得规定太多了

要求太多了 比较麻烦

所以一般来讲呢

输入尽量少用各种格式控制

要通过输入流对象输入数据呢

除了我们用提取运算符

输入文本文件中的数据以外呢

我们还可以利用

输入流类的成员函数

来完成各种不同的输入功能

现在我们就看一下

输入流相关的函数有哪些

那么输入流相关的函数呢

首先就是我们已经看到的

这个open函数

它是打开文件

实际上呢它是将流

与一个特定的磁盘文件

相关联的过程

另外get函数的功能呢

是与提取运算符的功能很像

是从输入文件中提取信息

那么不同的特点是

get函数在读入数据的时候

可以包括空白符

而提取运算符呢

它是以空白符为分隔符的

遇到空白符就停止了

另外还有getline

它可以整行读入

就看它的名字getline

它可以读取多个字符

并且以什么字符为终止符

它是可以定制的

我们可以指定终止符是什么

那么读取完成以后呢

会从读取的内容中

删除这个终止符

还有用于读二进制文件的函数

read函数

read成员函数呢

从一个文件中读字节

到一个指定的内存区域

到底读多少字节呢

读的长度是由长度参数确定的

那么这样的二进制读

可以跟我们前面学过的二进制写

相配合

如果某一段信息

当初是用write写到文件中去的

一般来说

以后在读出的时候

我们会对应地用read

给它读到内存中来

使用read函数的时候

如果给出了长度参数

那么当遇到文件结束

或者在文本模式中

遇到文件结束标记字符的时候

那么就会结束这个读取

也就是说

不管读不读得到指定的长度

遇到了文件结束

那么就会停止读取

seek函数呢

是用来设置文件输入流中

读取数据位置的指针的

一个打开的用于读目的的文件

它内部是有一个指针

指向下一个将要读取的位置

而这个seekg这个函数呢

就可以移动这个指针

按我们的要求

从指定的字节数开始读取

tellg函数呢

会返回当前文件读指针的位置

当我们完成了需要读的操作以后

不再使用这个文件的时候

大家要记得调用close函数 关闭这个文件

C++语言程序设计进阶课程列表:

第七章 继承与派生

-导学

--导学

-继承的基本概念和语法

--继承的基本概念和语法

-第七章 继承与派生--继承的基本概念和语法习题

-继承方式

--继承方式简介及公有继承

--私有继承和保护继承

-第七章 继承与派生--继承方式

-基类与派生类类型转换

--基类与派生类类型转换

-第七章 继承与派生--基类与派生类类型转换

-派生类的构造和析构

--派生类的构造函数

--派生类的构造函数举例

--派生类的复制构造函数

--派生类的析构函数

--第七章 继承与派生--派生类的构造和析构

-派生类成员的标识与访问

--访问从基类继承的成员

--虚基类

-第七章 继承与派生--派生类成员的标识与访问

-小结

--小结

-综合实例

--第七章综合实例

-实验七

--实验七

-第七章讲义

第八章 多态性

-导学

--导学

-第八章 多态性--导学

-运算符重载

--运算符重载的规则

--双目运算符重载为成员函数

--单目运算符重载为成员函数

--运算符重载为非成员函数

-第八章 多态性--运算符重载

-虚函数

--虚函数

--虚析构函数

--虚表与动态绑定

-第八章 多态性--虚函数

-抽象类

--抽象类

--第八章 多态性--抽象类

-override与final

--override与final

-第八章 多态性--override与final

-小结

--第八章小结

-综合实例

--第八章综合实例

-实验八

--实验八

- 第八章讲义

第九章 模板与群体数据

-导学

--导学

-模板

--函数模板

--类模板

-第九章 模板与群体数据--模板

-线性群体

--线性群体的概念

-第九章 模板与群体数据--线性群体

-数组

--数组类模板

--例9-4数组类应用举例

-链表

--链表的概念与结点类模板

--链表类模板

-第九章 模板与群体数据--链表

-栈

--栈类模板

--栈类模板课后习题

--例9-9 栈的应用

--例9-9 栈的应用课后习题

-队列

--队列类模板

-第九章 模板与群体数据--队列

-排序

--排序概述

--插入排序

--选择排序

--交换排序

-第九章 模板与群体数据--排序

-查找

--查找

--查找课后习题

-小结

--小结

-综合实例

--综合实例

-实验九

--实验九

- 第九章讲义

第十章 泛型程序设计与C++标准模板库

-导学

--导学

-泛型程序设计及STL的结构

--泛型程序设计的基本概念

--STL简介

-第十章 泛型程序设计与C++标准模板库--泛型程序设计及STL的结构

-迭代器

--迭代器

-第十章 泛型程序设计与C++标准模板库--迭代器

-容器的基本功能与分类

--容器的基本功能与分类

-第十章 泛型程序设计与C++标准模板库--容器的基本功能与分类

-顺序容器

--顺序容器的基本功能

--顺序容器的特征

--顺序容器的插入迭代器与适配器

--第十章 泛型程序设计与C++标准模板库--顺序容器

-关联容器

--关联容器分类和基本功能

--集合

--映射

--多重集合和多重映射

-第十章 泛型程序设计与C++标准模板库--关联容器

-函数对象

--函数对象

--函数适配器

-算法

--算法

-小结

--第十章小结

-综合实例

--综合实例

-实验十

--实验十

- 第十章讲义

第十一章 流类库与输入/输出

-导学

--导学

-I/O流的概念及流类库结构

--I/O流的概念及流类库结构

-第十一章 流类库与输入/输出--I/O流的概念及流类库结构

-输出流

--输出流概述

--向文本文件输出

--向二进制文件输出

--向字符串输出

-第十一章 流类库与输入/输出--输出流

-输入流

--输入流概述

--输入流应用举例

--从字符串输入

-第十一章 流类库与输入/输出--输入流

-输入/输出流

--输入/输出流

-第十一章 流类库与输入/输出--输入/输出流

-小结

--小结

-综合实例

--综合实例

-实验十一

--实验十一

- 第十一章讲义

第十二章 异常处理

-导学

--第12章导学

-异常处理的思想与程序实现

--异常处理的思想与程序实现

-第十二章 异常处理--异常处理的思想与程序实现

-异常处理中的构造与析构

--异常处理中的构造与析构

-第十二章 异常处理--异常处理中的构造与析构

-标准程序库异常处理

--标准程序库异常处理

-第十二章 异常处理--标准程序库异常处理

-小结

--第12章小结

-综合实例

--综合实例

-实验十二

--实验十二

- 第十二章讲义

输入流概述笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。