C语言程序设计课件第10章输入输出流.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言程序设计课件第10章输入输出流.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件第10章输入输出流.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章 输入输出流 课程要求1深入理解C+的输入输出流的含义与其实现方法。2掌握标准输入输出流的应用,包括格式输入输出。3掌握文本文件和二进制文件的读写方法。4掌握文件的随机存取方法。5掌握字符串流的应用。主要内容10.1 C+的输入输出10.2 标准输入输出流10.3 文件操作与文件流10.4 字符串流10.1 C+的输入输出 C+的输入输出是以流(字节序列)的形式进行的。C+的输入输出主要有以下三种:(1)对系统指定的标准设备的输入输出,即标准I/O。(2)以外存磁盘文件为对象进行的输入输出,称为文件的输入输出。(3)对内存指定的空间进行输入输出。10.1.1 C+流的概念 1流与流类C
2、+的输入输出流是由若干字节组成的字节序列,这些字节中的数据按一定的顺序从一个对象传送到另一个对象。C+提供了一些供程序设计者使用的类,在这些类中封装了可以实现输入输出操作的函数,这些类统称为I/O流类。流是用流类定义的对象,如cin、cout 2流的分类(1)文本流和二进制流:按照数据的格式(2)缓冲流与非缓冲流:按是否使用缓冲区10.1.2 C+流类库 C+的流类库是用继承方法建立起来的输入输出类库,由支持标准输入输出操作的基类和支持特定种类的源和目标的输入输出操作的类组成。它具有两个平行的基类,所有其它的流类都是从它们直接或间接地派生出来的。streambuf类:提供对流缓冲区的低级操作
3、ios类:提供对设备、文件的读写操作 C+流类体系 1通用I/O流类库(1)基类ios(2)输入类istream(3)输出类ostream(4)输入输出类iostream2文件I/O流类库(1)ofstream类(2)ifstream类(3)fstream 类3字符串I/O流类库(1)ostrstream 类(2)istrstream 类(3)strstream类10.1.3 与iostream类库有关的头文件(1)iostream.h:包含对输入输出流进行操作的基本信息,提供无格式支持的低级输入输出和有格式支持的高级输入输出操作功能。(2)fstream.h:包含管理文件输入输出操作的有关信
4、息。(3)strstrea.h:包含对内存中数据进行输入输出操作的有关信息。(4)stdiostream.h:包含进行C风格的输入输出操作的有关信息。(5)iomanip.h:包含输入输出流的格式控制符(manipulator)的有关信息。当一个程序中需要进行标准流输入输出操作时,则必须包含头文件iostream.h;当需要进行文件流输入输出操作时,则必须包含头文件fstream.h;当需要进行字符串流读/写操作时,则必须包含头文件strstream.h。10.1.4 插入与提取运算符的重载“”本来在C+中被定义为左位移运算符和右位移运算符,由于在文件iostream.h中对它们进行了重载,使
5、得它们能用作标准类型数据的输入输出运算符。从流中获取数据的操作称为提取操作,使用提取运算符“”;向流中添加数据的操作称为插入操作,使用插入运算符“”。10.2 标准输入输出流 10.2.1 标准流类 标准流是不需要打开和关闭文件即可直接操作的流式文件。cin:类istream的对象,用来处理标准输入,即键盘输入。cout:类ostream的对象,用来处理标准输出,即屏幕输出。cerr和clog:类ostream的对象,与错误信息的标准输出设备(屏幕)相关联,前者为非缓冲方式,后者为缓冲方式。1标准输入流 cin是由输入类istream的派生类istream_withassign定义的对象,在缺
6、省的情况下,cin所关联的外部设备为键盘,实现从键盘上输入数据。cin为缓冲流。2标准输出流在C+流类体系中定义的标准输出流是cout、cerr、clog,是由输出类ostream的派生类ostream_withassign定义的对象,在缺省的情况下,cout、cerr、clog 所关联的外部设备为屏幕,实现数据流输出到屏幕。cout、clog为缓冲流,而cerr为非缓冲流。10.2.2 格式控制成员函数数据输出的格式控制可通过两种途径实现:使用预定义格式控制符带参数(如setw(n))的:在头文件iomanip.h中定义不带参数(如dec)的:在头文件iostream.h中定义使用由ios类
7、定义的格式控制成员函数:在头文件iostream.h中说明1输出宽度和填充字符输出宽度和填充字符可通过由ios类中定义的输出域宽控制成员函数width(n)和填充成员函数fill(c)实现。其中n为输出数据的宽度,c为填充字符。【例10.2】使用成员函数控制输出宽度及填充方式/*ex10_2.cpp*#include void main()float a=2345.679;cout.fill(*);for(int i=0;i5;i+)cout.width(i+6);coutaendl;程序运行后输出:2345.682345.68*2345.68*2345.68*2345.68 2其它格式控制若
8、要改变流的其它输出格式(如对齐方式),可使用ios类中定义的成员函数setf来实现,函数格式如下:cout.setf(格式标志)格式标志在类ios中被定义为枚举值,在引用这些格式标志时要在前面加上类名ios和域运算符“:”。【例10.3】将学生姓名与比赛得分通过初始化赋给数组name5、score5,指定姓名域宽为10个字符、左对齐,比赛得分为右对齐、用定点方式、小数点后有2位有效数字。分析:浮点数默认的输出精度为6(即输出6位有效数字),例如浮点数3456.7891 显示为3456.79。若要实现指定小数点后显示几位有效数字,应先用setf设置定点方式,再用成员函数precision(n)设
9、置小数点后n位有效数字。#include#include void main(void)char*name=Zhou,Zhao,Liu,Chen,Li;double score=89,87.2,78.33,91.444,85.5555;for(int i=0;i5;i+)cout.setf(ios:left);/设置左对齐 cout.width(10);/设置域宽为10 coutnamei;cout.unsetf(ios:left);cout.setf(ios:fixed);/设置定点方式 cout.precision(2);/设置小数点后2位有效数字 coutscorein;程序运行后,输出
10、如下:Zhou 89.00Zhao 87.20Liu 78.33Chen 91.44Li 85.5610.2.3 数据输入输出成员函数 1数据输入成员函数(1)字符输入成员函数成员函数get()可以从输入流中获取字符,并将它存放在指定的变量中。该函数有以下两种格式:vch=cin.get()vcin.get(ch)函数实现从输入流中读取一个字符,赋给字符变量ch。采用第2种格式时,如果读取数据成功则函数返回非0值(真),否则(遇结束标志符)返回0值(假)。【例10.4】读取字符/*ex10_4.cpp*#include void main(void)char c1,c2,c3;cout输入字符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课件 10 输入输出
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内