内容正文:
YCF
(中职)编程语言基础------C++模块11教学课件
1
模块11 C++流与文件
任务1 C++流的概述
任务2格式化输入和输出
任务3文件
返回
任务1 C++流的概述
学习一种程序设计语言往往从编写一个简单的输出程序开始。
下一页
返回
任务1 C++流的概述
例11一1是一个简单的C程序,主要功能是在显示屏上输出“Hello World ! ",实现这一功能的是函数printf。然而,C++语言本身并没有定义输入、输出函数,它的输入、输出功能是通过调用外部库函数来实现的。printf()函数属于“stdio. h"(标准输入/输出)库,因此,在程序中使用printf)函数时,需要通过includ。语句引用、tdi。库,即#include < stdio. h >
在C++中,除了继续使用C语言习惯用的库函数实现输入输出,还引人了“流( stream)”的概念。“流”即数据流,是字符序列在主机与外部介质之间的流动,它负责在数据的产生者和使用者之间建立联系,并管理数据的流动。每一种流都是与设备相关的对象。
上一页
下一页
返回
任务1 C++流的概述
它具有方向性:与输入设备相联系的流称为输入流;与输出设备相联系的流称为输出流;与输入输出设备(如磁盘)相联系的流称为输入输出流。表11-1是C++中的标准流设备以及对应的C语言中的设备名称。
cerr与tout的输出默认设备都是屏幕,二者的区别是cout为标准输出,而cerr为标准错误输出,cerr的输出没有缓冲区,结果会立刻显示在用户终端上。
数据的流动需要管道,而流通的管道就是“<<”(输出操作符)和“>>”(输入操作符)。“<<”和“>>”原本是C++语言中的左移和右移运算符,它们在C++中被重载为输出和输入操作符,并有了新的名称:插人运算符和提取运算符。
上一页
下一页
返回
任务1 C++流的概述
在C++中“流”是可以扩充的。例如定义了一个结构MyStruct后,就可以教会插人运算符如何输出一个结构对象,教会提取运算符如何读取一个结构对象。
现在,看看C++风格的“Hello World”是如何编写的。
上一页
下一页
返回
任务1 C++流的概述
在这个程序中,用iostream库代替stdio库,用插人运算符“<<”代替printf,用换行标志endl代替“
" , cout是标准流设备,代表屏幕。程序按照从左到右的顺序先在屏幕上输出“Hello World,再输出换行符。
iostream库函数改进了stdio库函数,它所提供的任何事物都被封装在命名空间std内。命名空间是一种将程序库名称封装起来的方法。
上一页
下一页
返回
任务1 C++流的概述
上一页
下一页
返回
任务1 C++流的概述
C++中的流由相应的类创建,并通过相应的方法操作。C++中流的类层次结构如图11-1所示。由图中可以看到,ios类是虚基类,派生出istream类和ostream类。istream类是通用输入流类和其他输入流的基类,负责创建输入流,其中定义了输入运算符“>>”的各种重载形式,它还包括一些更传统的语句如bet()和二ad。它的派生类ifstream类负责处理文件的输入,istrstream类负责处理字符串,istream_ withassign类创建了标准输入对象cin。相对应地,ostream类是通用输出流类和其他输出流类的基类,定义了输出运算符“<<”的各种重载形式,其派生类ofstream类负责处理文件,ostrstream负责处理字符串,ostream-withassign创建了标准输出对象cout、标准错误输出cerr和clog( cerr的缓冲形式)。iostream类是由is-
tream类和ostream类派生的,负责创建输入输出流。
上一页
下一页
返回
任务1 C++流的概述
C++提供了一个流类库,流类库由若干完成I/0操作的基础类以及若干支持特定种类的源和日标的I/o操作类组成。流类库的基础类利用继承关系组织起来,其类层次如图11-1所示,这些类的说明如表11-2所示。所有使用流类库的程序必须用“#include”编译指令将“iostream. h”包含进来。
上一页
返回
任务2格式化输入和输出
在以前的程序中,所有I/O采用的格式都是由C++流类库提供的默认方式。在实际应用中,常常需要准确控制数据(特别是整数、浮点数与字符串)的I/O格式。流类库可用两种方法控制数据的格式:使用流对象的成员函数和使用I/O控制符。
11. 2. 1使用流对象的成员函数
下一页
返回
任务2格式化输入和输出
上一页
下一页
返回
任务2格式化输入和输出
precision()为cout对象的成员函数