(中职)编程语言基础------C++模块11教学课件.ppt
《(中职)编程语言基础------C++模块11教学课件.ppt》由会员分享,可在线阅读,更多相关《(中职)编程语言基础------C++模块11教学课件.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、YCF正版可修改PPT(中职)编程语言基础-C+模块11教学课件模块模块11 C+流与文件流与文件任务任务1 C+流的概述流的概述任务任务2格式化输入和输出格式化输入和输出任务任务3文件文件返回任务任务1 C+流的概述流的概述学习一种程序设计语言往往从编写一个简单的输出程序开始。学习一种程序设计语言往往从编写一个简单的输出程序开始。学习一种程序设计语言往往从编写一个简单的输出程序开始。学习一种程序设计语言往往从编写一个简单的输出程序开始。下一页返回任务任务1 C+流的概述流的概述例例例例1111一一一一1 1是一个简单的是一个简单的是一个简单的是一个简单的C C程序,主要功能是在显示屏上输出程
2、序,主要功能是在显示屏上输出程序,主要功能是在显示屏上输出程序,主要功能是在显示屏上输出“Hello Hello World!World!,实现这一功能的是函数,实现这一功能的是函数,实现这一功能的是函数,实现这一功能的是函数printfprintf。然而,。然而,。然而,。然而,C+C+语言本身并没语言本身并没语言本身并没语言本身并没有定义输入、输出函数,它的输入、输出功能是通过调用外部库函数有定义输入、输出函数,它的输入、输出功能是通过调用外部库函数有定义输入、输出函数,它的输入、输出功能是通过调用外部库函数有定义输入、输出函数,它的输入、输出功能是通过调用外部库函数来实现的。来实现的。来
3、实现的。来实现的。printf()printf()函数属于函数属于函数属于函数属于“stdio.h(stdio.h(标准输入标准输入标准输入标准输入/输出输出输出输出)库,因此,库,因此,库,因此,库,因此,在程序中使用在程序中使用在程序中使用在程序中使用printf)printf)函数时,需要通过函数时,需要通过函数时,需要通过函数时,需要通过includinclud。语句引用、。语句引用、。语句引用、。语句引用、tditdi。库,。库,。库,。库,即即即即#include#include 在在在在C+C+中,除了继续使用中,除了继续使用中,除了继续使用中,除了继续使用C C语言习惯用的库函
4、数实现输入输出,还语言习惯用的库函数实现输入输出,还语言习惯用的库函数实现输入输出,还语言习惯用的库函数实现输入输出,还引人了引人了引人了引人了“流流流流(stream)”(stream)”的概念。的概念。的概念。的概念。“流流流流”即数据流,是字符序列在主机与即数据流,是字符序列在主机与即数据流,是字符序列在主机与即数据流,是字符序列在主机与外部介质之间的流动,它负责在数据的产生者和使用者之间建立联系,外部介质之间的流动,它负责在数据的产生者和使用者之间建立联系,外部介质之间的流动,它负责在数据的产生者和使用者之间建立联系,外部介质之间的流动,它负责在数据的产生者和使用者之间建立联系,并管理
5、数据的流动。每一种流都是与设备相关的对象。并管理数据的流动。每一种流都是与设备相关的对象。并管理数据的流动。每一种流都是与设备相关的对象。并管理数据的流动。每一种流都是与设备相关的对象。上一页 下一页返回任务任务1 C+流的概述流的概述它具有方向性它具有方向性它具有方向性它具有方向性:与输入设备相联系的流称为输入流与输入设备相联系的流称为输入流与输入设备相联系的流称为输入流与输入设备相联系的流称为输入流;与输出设备相联系与输出设备相联系与输出设备相联系与输出设备相联系的流称为输出流的流称为输出流的流称为输出流的流称为输出流;与输入输出设备与输入输出设备与输入输出设备与输入输出设备(如磁盘如磁盘
6、如磁盘如磁盘)相联系的流称为输入输出流。相联系的流称为输入输出流。相联系的流称为输入输出流。相联系的流称为输入输出流。表表表表11-111-1是是是是C+C+中的标准流设备以及对应的中的标准流设备以及对应的中的标准流设备以及对应的中的标准流设备以及对应的C C语言中的设备名称。语言中的设备名称。语言中的设备名称。语言中的设备名称。cerrcerr与与与与touttout的输出默认设备都是屏幕,二者的区别是的输出默认设备都是屏幕,二者的区别是的输出默认设备都是屏幕,二者的区别是的输出默认设备都是屏幕,二者的区别是coutcout为标准输出,为标准输出,为标准输出,为标准输出,而而而而cerrce
7、rr为标准错误输出,为标准错误输出,为标准错误输出,为标准错误输出,cerrcerr的输出没有缓冲区,结果会立刻显示在的输出没有缓冲区,结果会立刻显示在的输出没有缓冲区,结果会立刻显示在的输出没有缓冲区,结果会立刻显示在用户终端上。用户终端上。用户终端上。用户终端上。数据的流动需要管道,而流通的管道就是数据的流动需要管道,而流通的管道就是数据的流动需要管道,而流通的管道就是数据的流动需要管道,而流通的管道就是“”(”(”(输入操作符输入操作符输入操作符输入操作符)。“”原本是原本是原本是原本是C+C+语言中的左移和右语言中的左移和右语言中的左移和右语言中的左移和右移运算符,它们在移运算符,它们
8、在移运算符,它们在移运算符,它们在C+C+中被重载为输出和输入操作符,并有了新的名中被重载为输出和输入操作符,并有了新的名中被重载为输出和输入操作符,并有了新的名中被重载为输出和输入操作符,并有了新的名称称称称:插人运算符和提取运算符。插人运算符和提取运算符。插人运算符和提取运算符。插人运算符和提取运算符。上一页 下一页返回任务任务1 C+流的概述流的概述 在在在在C+C+中中中中“流流流流”是可以扩充的。例如定义了一个结构是可以扩充的。例如定义了一个结构是可以扩充的。例如定义了一个结构是可以扩充的。例如定义了一个结构MyStructMyStruct后,就后,就后,就后,就可以教会插人运算符如
9、何输出一个结构对象,教会提取运算符如何读可以教会插人运算符如何输出一个结构对象,教会提取运算符如何读可以教会插人运算符如何输出一个结构对象,教会提取运算符如何读可以教会插人运算符如何输出一个结构对象,教会提取运算符如何读取一个结构对象。取一个结构对象。取一个结构对象。取一个结构对象。现在,看看现在,看看现在,看看现在,看看C+C+风格的风格的风格的风格的“Hello World”Hello World”是如何编写的。是如何编写的。是如何编写的。是如何编写的。上一页 下一页返回任务任务1 C+流的概述流的概述 在这个程序中,用在这个程序中,用在这个程序中,用在这个程序中,用iostreamios
10、tream库代替库代替库代替库代替stdiostdio库,用插人运算符库,用插人运算符库,用插人运算符库,用插人运算符“”的各种重载形式,的各种重载形式,的各种重载形式,的各种重载形式,它还包括一些更传统的语句如它还包括一些更传统的语句如它还包括一些更传统的语句如它还包括一些更传统的语句如bet()bet()和二和二和二和二adad。它的派生类。它的派生类。它的派生类。它的派生类ifstreamifstream类负类负类负类负责处理文件的输入,责处理文件的输入,责处理文件的输入,责处理文件的输入,istrstreamistrstream类负责处理字符串,类负责处理字符串,类负责处理字符串,类负
11、责处理字符串,istream_ istream_ withassignwithassign类创建了标准输入对象类创建了标准输入对象类创建了标准输入对象类创建了标准输入对象cincin。相对应地,。相对应地,。相对应地,。相对应地,ostreamostream类是通用输类是通用输类是通用输类是通用输出流类和其他输出流类的基类,定义了输出运算符出流类和其他输出流类的基类,定义了输出运算符出流类和其他输出流类的基类,定义了输出运算符出流类和其他输出流类的基类,定义了输出运算符“”的各种重载的各种重载的各种重载的各种重载形式,其派生类形式,其派生类形式,其派生类形式,其派生类ofstreamofstr
12、eam类负责处理文件,类负责处理文件,类负责处理文件,类负责处理文件,ostrstreamostrstream负责处理字符串,负责处理字符串,负责处理字符串,负责处理字符串,ostream-withassignostream-withassign创建了标准输出对象创建了标准输出对象创建了标准输出对象创建了标准输出对象coutcout、标准错误输出、标准错误输出、标准错误输出、标准错误输出cerrcerr和和和和clogclog(cerr(cerr的缓冲形式的缓冲形式的缓冲形式的缓冲形式)。iostreamiostream类是由类是由类是由类是由is-is-treamtream类和类和类和类和o
13、streamostream类派生的,负责创建输入输出流。类派生的,负责创建输入输出流。类派生的,负责创建输入输出流。类派生的,负责创建输入输出流。上一页 下一页返回任务任务1 C+流的概述流的概述 C+C+提供了一个流类库,流类库由若干完成提供了一个流类库,流类库由若干完成提供了一个流类库,流类库由若干完成提供了一个流类库,流类库由若干完成I/0I/0操作的基础类以及若干操作的基础类以及若干操作的基础类以及若干操作的基础类以及若干支持特定种类的源和日标的支持特定种类的源和日标的支持特定种类的源和日标的支持特定种类的源和日标的I/oI/o操作类组成。流类库的基础类利用继承操作类组成。流类库的基础
14、类利用继承操作类组成。流类库的基础类利用继承操作类组成。流类库的基础类利用继承关系组织起来,其类层次如图关系组织起来,其类层次如图关系组织起来,其类层次如图关系组织起来,其类层次如图11-111-1所示,这些类的说明如所示,这些类的说明如所示,这些类的说明如所示,这些类的说明如表表表表11-211-2所示。所示。所示。所示。所有使用流类库的程序必须用所有使用流类库的程序必须用所有使用流类库的程序必须用所有使用流类库的程序必须用“#include”#include”编译指令将编译指令将编译指令将编译指令将“iostream.iostream.h”h”包含进来。包含进来。包含进来。包含进来。上一页
15、返回任务任务2格式化输入和输出格式化输入和输出 在以前的程序中,所有在以前的程序中,所有在以前的程序中,所有在以前的程序中,所有I/OI/O采用的格式都是由采用的格式都是由采用的格式都是由采用的格式都是由C+C+流类库提供的默认流类库提供的默认流类库提供的默认流类库提供的默认方式。在实际应用中,常常需要准确控制数据方式。在实际应用中,常常需要准确控制数据方式。在实际应用中,常常需要准确控制数据方式。在实际应用中,常常需要准确控制数据(特别是整数、浮点数与特别是整数、浮点数与特别是整数、浮点数与特别是整数、浮点数与字符串字符串字符串字符串)的的的的I/OI/O格式。流类库可用两种方法控制数据的格
16、式格式。流类库可用两种方法控制数据的格式格式。流类库可用两种方法控制数据的格式格式。流类库可用两种方法控制数据的格式:使用流对象使用流对象使用流对象使用流对象的成员函数和使用的成员函数和使用的成员函数和使用的成员函数和使用I/OI/O控制符。控制符。控制符。控制符。11.2.1使用流对象的成员函数使用流对象的成员函数下一页返回任务任务2格式化输入和输出格式化输入和输出上一页 下一页返回任务任务2格式化输入和输出格式化输入和输出precision()precision()为为为为coutcout对象的成员函数,在要求输出一定精度的数据之前,对象的成员函数,在要求输出一定精度的数据之前,对象的成员
17、函数,在要求输出一定精度的数据之前,对象的成员函数,在要求输出一定精度的数据之前,先调用这个精度设置成员函数。先调用这个精度设置成员函数。先调用这个精度设置成员函数。先调用这个精度设置成员函数。)上一页 下一页返回任务任务2格式化输入和输出格式化输入和输出11.2.2用控制符用控制符manipulators(manipulators(控制符控制符控制符控制符)是在头文件是在头文件是在头文件是在头文件iomanip.hiomanip.h中定义的对象,与成员函中定义的对象,与成员函中定义的对象,与成员函中定义的对象,与成员函数调用效果一样。控制符的优点是程序可以直接将它们插人流中,不数调用效果一样
18、。控制符的优点是程序可以直接将它们插人流中,不数调用效果一样。控制符的优点是程序可以直接将它们插人流中,不数调用效果一样。控制符的优点是程序可以直接将它们插人流中,不必单独调用。必单独调用。必单独调用。必单独调用。上一页 下一页返回任务任务2格式化输入和输出格式化输入和输出上一页 下一页返回任务任务2格式化输入和输出格式化输入和输出常用控制符和流格式控制成员函数如常用控制符和流格式控制成员函数如常用控制符和流格式控制成员函数如常用控制符和流格式控制成员函数如表表表表11-311-3所示。所示。所示。所示。控制符和流成员函数相对应,它们用法不同,但作用相同。控制符和流成员函数相对应,它们用法不同
19、,但作用相同。控制符和流成员函数相对应,它们用法不同,但作用相同。控制符和流成员函数相对应,它们用法不同,但作用相同。其中其中其中其中setw(n)setw(n)或或或或width(n)width(n)很特别,它们在下一个域输出后,又回到原先很特别,它们在下一个域输出后,又回到原先很特别,它们在下一个域输出后,又回到原先很特别,它们在下一个域输出后,又回到原先的默认值。的默认值。的默认值。的默认值。上一页 下一页返回任务任务2格式化输入和输出格式化输入和输出运行结果中的下横线表示空格。整数运行结果中的下横线表示空格。整数运行结果中的下横线表示空格。整数运行结果中的下横线表示空格。整数2020并
20、没有按宽度并没有按宽度并没有按宽度并没有按宽度8 8输出。输出。输出。输出。setw()setw()的的的的默认值为宽度默认值为宽度默认值为宽度默认值为宽度0.0.即即即即setw(O)setw(O),意思是,按输出对象的表示宽度输出。所,意思是,按输出对象的表示宽度输出。所,意思是,按输出对象的表示宽度输出。所,意思是,按输出对象的表示宽度输出。所以以以以2020就紧挨就紧挨就紧挨就紧挨1010了。若要每个数值都有域宽度了。若要每个数值都有域宽度了。若要每个数值都有域宽度了。若要每个数值都有域宽度8 8,则每个值都要设置,则每个值都要设置,则每个值都要设置,则每个值都要设置:coutsetw
21、(8)10 coutsetw(8)10 setw(8)20endl setw(8)20endl 从中得出,用控制符的方法更加直接。从中得出,用控制符的方法更加直接。从中得出,用控制符的方法更加直接。从中得出,用控制符的方法更加直接。上一页 下一页返回任务任务2格式化输入和输出格式化输入和输出上一页 下一页返回任务任务2格式化输入和输出格式化输入和输出上一页 下一页返回任务任务2格式化输入和输出格式化输入和输出Coutsetfill()setw(n)“”Coutsetfill()setw(n)“”中中中中“”“”要显示的长度为要显示的长度为要显示的长度为要显示的长度为n n,但它本身,但它本身,
22、但它本身,但它本身的长度只有的长度只有的长度只有的长度只有1 1,所以其余的内容也就由,所以其余的内容也就由,所以其余的内容也就由,所以其余的内容也就由setfill()setfill()来填充了,效果就使来填充了,效果就使来填充了,效果就使来填充了,效果就使得得得得 a a 前的空格逐行增加。同样,前的空格逐行增加。同样,前的空格逐行增加。同样,前的空格逐行增加。同样,coutsetfill(a)setw(15-2*n,),coutsetfill(a)setw(15-2*n,),但它本身的长度只有但它本身的长度只有但它本身的长度只有但它本身的长度只有1 1,所以其余的内容就有,所以其余的内容
23、就有,所以其余的内容就有,所以其余的内容就有setfillsetfill来填充了,由于来填充了,由于来填充了,由于来填充了,由于15-15-2 2*n n逐行递减,结果就显示出一个用逐行递减,结果就显示出一个用逐行递减,结果就显示出一个用逐行递减,结果就显示出一个用aa构筑的倒三角构筑的倒三角构筑的倒三角构筑的倒三角上一页返回任务任务3文件文件11.3.1流式文件的流式文件的I/O函数函数流式流式流式流式I/OI/O函数把所有输出写人到输出缓冲区中,并不是在执行输出语函数把所有输出写人到输出缓冲区中,并不是在执行输出语函数把所有输出写人到输出缓冲区中,并不是在执行输出语函数把所有输出写人到输出
24、缓冲区中,并不是在执行输出语句时直接向输出设备输出数据。当写满输入缓冲区后,将所有数据写句时直接向输出设备输出数据。当写满输入缓冲区后,将所有数据写句时直接向输出设备输出数据。当写满输入缓冲区后,将所有数据写句时直接向输出设备输出数据。当写满输入缓冲区后,将所有数据写人磁盘。人磁盘。人磁盘。人磁盘。流式文件流式文件流式文件流式文件I/OI/O函数分为缓冲型文件系统和非缓冲型文件系统两种。函数分为缓冲型文件系统和非缓冲型文件系统两种。函数分为缓冲型文件系统和非缓冲型文件系统两种。函数分为缓冲型文件系统和非缓冲型文件系统两种。缓冲型文件系统又称为缓冲型文件系统又称为缓冲型文件系统又称为缓冲型文件系
25、统又称为ANSIANSI系统,它通过文件指针对文件进行操系统,它通过文件指针对文件进行操系统,它通过文件指针对文件进行操系统,它通过文件指针对文件进行操作,是标准系统,可以在绝大多数运行作,是标准系统,可以在绝大多数运行作,是标准系统,可以在绝大多数运行作,是标准系统,可以在绝大多数运行PCPC类操作系统的类操作系统的类操作系统的类操作系统的PCPC机上使用。机上使用。机上使用。机上使用。非缓冲型文件系统采用非缓冲型文件系统采用非缓冲型文件系统采用非缓冲型文件系统采用UNIXUNIX系统标准,只能在系统标准,只能在系统标准,只能在系统标准,只能在UNIXUNIX系统下使用。系统下使用。系统下使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 语言 基础 C+ 模块 11 教学 课件
限制150内