第七章流类库和输入输出资料.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章流类库和输入输出资料

C++的基本流类体系 标准设备的输入/输出 文件的输入/输出 文件与对象 第七章 流类库和输入/输出 本章的最主要目的就是把对象保存到磁盘文件中并从磁盘文件重建对象。   C++语言中并没有输入/输出语句,而是在标准库里包含了一个I/O流类库,它与标准模板库同为C++标准库中最重要的组成部分。数据从一个对象到另一个对象的传送被抽象为“流”。从流中取得数据的操作称为提取操作,数据的输入/输出就是通过输入/输出流来实现的。 本章的最主要目的就是把对象保存到磁盘文件中并从磁盘文件重建对象。   C++语言中并没有输入/输出语句,而是在标准库里包含了一个I/O流类库,它与标准模板库同为C++标准库中最重要的组成部分。数据从一个对象到另一个对象的传送被抽象为“流”。从流中取得数据的操作称为提取操作,向流中添加数据的操作称为插入操作,数据的输入/输出就是通过输入/输出流来实现的。 7.1 C++的基本流类体系 流类体系:以抽象类模板basic_ios为基类,整个流类模板体系的标准I/O在头文件iostream中说明,它包含头文件ios、streambuf、istream和ostream。而输入输出文件流部分在头文件fstream中说明。 basic_ ios basic_ streambuf basic_ istream basic_ ostream basic_ ifstream basic_ iostream basic_ ofstream basic_ fstream 指针 标准设备的输入输出 键盘 显示器 文件的输入输出 指定内存空间的输入输出 输入输出的含义 iostream类库中的常见类 类名 作用 在哪个头文件中声明 ios 抽象基类 iostream istream ostream iostream 通用输入流和其他输入流的基类 通用输出流和其他输出流的基类 通用输入输出流和其他输入输出流的基类 iostream ifstream ofstream fstream 输入文件流类 输出文件流类 输入输出文件流类 fstream istrstream ostrstream strstream 输入字符串流 输出字符串流 输入输出字符串流 strstream 在iostream中定义的对象 对象 含义 对应设备 类 cin 标准输入流 键盘 istream cout 标准输出流 屏幕 ostream cerr 标准错误流 屏幕 ostream clog 标准错误流 屏幕 ostream cin标准输入流对象,键盘为其对应的标准设备。 cout标准输出流对象,显示器为标准设备。 cerr和clog标准错误输出流,输出设备是显示器。 标准输入/输出是采用字符序列进行的,称为文本流。 其中cin、cout和clog是带缓冲区的,缓冲区由streambuf类对象来管理。而cerr为非缓冲区流,一旦错误发生立即显示。 要使用这四个功能,必须包含iostream文件。 cin使用提取运算符“”。cout、cerr和clog使用插入运算符””。 重载插入和提取运算符: 重载必须保留原来的使用特性。重载只能在用户定义类中,将重载的运算符的函数说明为该类的友元函数: friend istreamoperator(istream,className); friend ostreamoperator(ostream,className); 函数的返回值是对输入或输出流的引用,这是为了保证在cin和cout中可以连续使用“”或“”运算符,与所有“”和“”重载函数一致。第一个参数是输入或输出流的引用,作为“”或“”的左操作数;第二个参数为用户定义类的引用,作为右操作数。流用作函数参数,必须是引用调用,不能是传值调用。因为这里要求处理流本身,而不是副本。 class Complex{ double Real,Image; public: Complex(double r=0.0, double i=0.0):Real(r),Image(i){}//定义构造函数 friend ostreamoperator(ostreams,const Complexz); friend istreamoperator(istreams,Complexa); }; ostreamoperator(ostreams,const Complex z){ //流类作为形式参数必须是引用 return s(z.Real,z.Image); } istreamoperator(istreams,Complex a){//格式为d,(d),(d,d) double re=0,im=0; char c=0; s

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档