面向对象程序设计13.ppt
《面向对象程序设计13.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计13.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十二章第十二章 文件文件面向对象程序设计面向对象程序设计-第二部分第二部分卫文学信息科学与工程学院2004.9 山东科技大学 本本章章的的最最主主要要目目的的就就是是把把对对象象保保存存到到磁磁盘盘文文件件中中以以及及从从磁磁盘盘文文件件重重建建对对象象。当当然然C+C+可可完完成成更更多多的任务。的任务。C+C+语言中并没有输入语言中并没有输入/输出语句,而是在输出语句,而是在标准库里包含了一个标准库里包含了一个I/OI/O流流类库类库,它与标准模,它与标准模板库同为板库同为C+C+标准库中最重要的组成部分。标准库中最重要的组成部分。数据从一个对象到另一个对象的传送被抽数据从一个对象到另一
2、个对象的传送被抽象为象为“流流”。数据的输入。数据的输入/输出就是通过输入输出就是通过输入/输出流来实现的。输出流来实现的。流是一种抽象的概念,负责在数据的产生流是一种抽象的概念,负责在数据的产生者和数据的使用者之间建立联系,并管理数据者和数据的使用者之间建立联系,并管理数据的流动。的流动。在流类库中,最重要的两部分功能为在流类库中,最重要的两部分功能为标准输入标准输入/输出输出(standard input/outputstandard input/output)和和文件处理文件处理。在在C+C+的流类库中定义了的流类库中定义了四个全局流对象:四个全局流对象:cincin,coutcout,
3、cerrcerr和和clogclog。可以完成人机交互的功能。可以完成人机交互的功能。cincin标准输入流对象,键盘为其对应的标准设备。标准输入流对象,键盘为其对应的标准设备。coutcout标准输出流对象,显示器为标准设备。标准输出流对象,显示器为标准设备。cerrcerr和和clogclog标准错误输出流,输出设备是显示器。标准错误输出流,输出设备是显示器。其中其中cincin、coutcout和和clogclog是带缓冲区的,缓冲区由是带缓冲区的,缓冲区由streambufstreambuf类对象来管理。而类对象来管理。而cerrcerr为非缓冲区流,一旦错为非缓冲区流,一旦错误发生立
4、即显示。误发生立即显示。要使用这四个功能,必须包含要使用这四个功能,必须包含文件。文件。1 1、输入流和输出流输入流和输出流C C无专门的输入输出语句,是由流库完成;流与特定的设备相联系。无专门的输入输出语句,是由流库完成;流与特定的设备相联系。iostream.hiostream.h流类地继承体系流类地继承体系iosiosostreamostreamistreamistreamclogclogfstreamfstreamiostreamiostreamcerrcerrcincinifstreamifstreamofstreamofstreamcoutcout(1 1)输出流输出流 coutc
5、out:输出流输出流ostreamostream类的一个类的一个预定义对象预定义对象 与标准输出设备(终端屏幕)相联系与标准输出设备(终端屏幕)相联系 ostreamostream中重载了中重载了运算符(运算符(插入运算符插入运算符)插入运算符插入运算符:ostreamostream&operator(&operator(类型类型););/重载形式:注意优先级和结合顺序重载形式:注意优先级和结合顺序程序程序输入设备输入设备输出设备输出设备文件文件 coutcout“stringstring”;cout.operatorcout.operator(i;cin.operator(i);析取运算符:
6、跳过开始空白字符。char ch;cinch;/输入“x”,读入x 注意:注意:C编译器将根据对象编译器将根据对象类型选用相应版本的重载类型选用相应版本的重载)运算符函数,用户不必关心运算符函数,用户不必关心。读入一个字符串时,空格作为串的终止。char buffer20;cinbuffer;/输入“Jack Spart”,读入“Jack”类型不符,返回零值,并终止程序。类型不符,返回零值,并终止程序。int readints()int v10;for(int i=0;ivi)continue;return i;/输入:输入:1 2 3 4 5.6 7 8(4)重载插入和析取运算符(对用户定义
7、类型)重载插入和析取运算符(对用户定义类型)class Complex double rpart,ipart;public:friend ostream&operator(ostream&s,Complex&c);/;第一个参数是流第一个参数是流第二个参数是要第二个参数是要输入输出的对象输入输出的对象返回流的引用返回流的引用#include class Complex double rpart,ipart;public:Complex(double r=0.0,double i=0.0)ipart=i;part=r;friend ostream&operator(istream&,Comple
8、x&);friend ostream&operator(istream&s,Complex&c)sc.rpartc.ipart;return s;ostream&operator(ostream&s,Complex&c)s(c.rpart,c.ipartc;cout“Complex:”cbuffer;输出流:cout.width(4);cout(12);cout.width(4);cout.fill(#);cout(12);(12)(#12)Width()作用于输入作用于输入/输出的数字或串输出的数字或串 数据的长度超过width,忽略设置,按数据实际长度显示;cout.width(4);co
9、ut(121212);每次插入操作后,width被置0;cout.width(4);cout.fill(#);cout(12“),(“12);(121212)(#12),(12)11.2.2 格式状态格式状态Ios中用枚举记录标志,控制I/O class ios public:enum skipws=01,/析取操作忽略空白字符析取操作忽略空白字符 left=02,right=04,internal=010,/值按右对齐,符号按左对齐值按右对齐,符号按左对齐 dec=020,oct=040,hex=0100,showbase=0200,showpoint=0400,/float,double显
10、示小数和尾数后的零显示小数和尾数后的零 uppercase=01000,showpos=02000,/在正整数前插入在正整数前插入“+”号号 scientific=04000,/科学计数法,小数点前一位数字科学计数法,小数点前一位数字 /;/;可用下列函数设置、读取、取消标志位;long flags()/返回当前格式化标志值返回当前格式化标志值 long flags(long f)/设置标志设置标志值值f,并返回上次标志值并返回上次标志值 long setf(long f)/设置标志设置标志位位f,并返回上次标志位并返回上次标志位 long unsetf(long f)/取消在取消在f中设置的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 13
限制150内