第12章_IO流_.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++程序设计 在程序设计中,数据输入/输出(I/O)操作是必不可少的。C++没有专门的输入/输出语句,但它提供了功能强大的输入/输出流库ios,输入/输出操作由“流”来处理。C++把数据从一个位置到另一个位置的流动抽象为“流”。当数据从键盘流入到程序中时,这样的流称为“输入流”,而当数据从程序中流向屏幕或磁盘文件时,这样的流称为“输出流”。此外,与输入/输出设备(如磁盘)相联系的流称为输入/输出流。当流被建立后就可以向流中添加数据,称为“插入”操作,或者从流中获取数据,称为“提取”操作。 在C++程序中,用流统一对计算机各种设备和文件进行操作,从而提高了程序的通用性和灵活性。 12.1 C++流概述 12.1.1 I/O流类 C++的输入/输出流库具有面向对象的特性,其结构如下图所示。 ios类提供一些对流状态进行设置的功能,它是一个虚基类,其他类都是从这个类派生而来的。但streambuf不是ios类的派生类,在ios类中有一个指针成员,指向streambuf类的一个对象。streambuf类是用来为ios类及其派生类提供对数据的缓冲支持。所谓“缓冲”是指系统在内存中开辟一个专用的区域用来临时存放输入/输出信息,这个区域称为缓冲区。有了缓冲区,输入/输出时所占用的CPU时间就大大减少,提高了系统的效率。这是因为只有当缓冲区满时,或者当前送入的数据为新的一行时,系统才对流中的数据进行处理。 istream类和ostream类都是ios类的公有派生类。istream类提供了向流中插入数据的有关操作,ostream类提供了从流中提取数据的有关操作。iostream类是istream和ostream类公有派生的,该类并没有提供新的操作,只是将istream类和ostream类的行为综合在一起,提供一种方便。 为了方便用户对基本输入/输出流进行操作,C++提供了4个预定义的标准流对象:cin、cout、cerr和clog。当用户在程序中包含了头文件“iostream.h”时,编译器调用相应的构造函数产生这4个标准流对象,用户在程序中就可以直接使用它们了。其中,cin是istream类的对象,用于处理标准输入(即键盘输入);cout是ostream类的对象,用于处理标准输出(即屏幕输出);cerr和clog都是ostream类的对象,用于处理标准出错信息,并将信息显示到屏幕上。 在这4个标准流对象中,除了cerr不支持缓冲外,其余3个都带有缓冲区,详见下表 12.1.2 标准输出流 C++的ostream类提供了多种形式的输出功能:使用插入运算符“”输出各种数据;通过成员函数put()实现字符的输出;通过成员函数write()实现无格式输出等。 使用成员函数put()输出单个字符 在ostream类中定义了可以输出单个字符的成员函数put(),因为cout是ostream类的对象,所以cout可以使用该成员函数输出字符。其使用格式为: 成员函数put()可以将1个字符型变量的值或1个字符常量输出到屏幕上,其返回值为ostream类对象的引用。 【例12-1】put()函数用法示例。 #include iostream.h void main() { char ch=a; cout.put(ch)endl; cout.put(a).put(b).put(c)endl; // 可以连续调用put()函数 } 运行结果: a abc 2. 使用成员函数write()输出字符串 ostream类还提供了可以将一个字符串的部分或全部字符送到输出流的成员函数wirte(),其使用格式为: cout.write(const char *str, int n) 该函数的第1个参数是要输出字符串的地址(可以是1个字符指针或1个字符数组);第2个参数是要输出的字符个数。若要输出字符串的全部字符,则第2个参数的值可以通过函数strlen()求出。函数返回值为ostream类对象的引用。 【例12-2】write()函数用法示例。 #include iostream.h #include string.h void main() { char * ch=伟大祖国 欣欣向荣; cout.write(ch, 8).put(\n); // 输出前8个字符 cout.write(ch, strlen(ch))endl; // 输出全部字符 } 运行结果: 伟大祖国 伟大祖国 欣欣向荣 12.1.3 标准输入流 C++的istream类提供了多种形式的输入功能:使用提取运算符“”输入各种类型的数据;通过成员函数get()实现字符的输入;通过成员函数getli

文档评论(0)

word.ppt文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档