C语言11输入输出流.ppt

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

C++程序设计 第十一章 输入/输出流 内容提要: C++增加输入/输出流的原因 标准流类 用户自定义类型的输入/输出 文件的输入/输出 11.1 C++增加输入/输出流的原因 1、C中的输入/输出函数缺少类型检查 指出下面程序中出现的问题。 #include stdio.h int j=10; float f=2.3; void main() { printf(“%d”,f); //只按整型输出 scanf(“%d”,f); //只保存整数部分 scanf(“%d”,j); //运行时会出错 printf(“%d”,”abcde”); //输出“abcde”的地址值,而不能输出字符串 } 2、不可扩充性 由于printf和scanf只对已知的数据类型进行输入输出,而对其它数据未知数据类型则不能输出,同时也不能进行扩充或重新定义,例如不能用于对文件的读写操作等。为此C++中提供了一些新的I/O类来满足用户的更高的要求。 11.2 标准流类 1、流的概念 在C++语言中,数据的输入和输出(简写为I/O)包括对标准输入设备键盘和标准输出设备显示器、对在外存磁盘上的文件和对内存中指定的字符串存储空间进行输入输出这三个方面。对标准输入设备和标准输出设备的输入输出简称为标准I/O,对在外存磁盘上文件的输入输出简称为文件I/O,对内存中指定的字符串存储空间的输入输出简称为串I/O。 C++中把数据之间的传输操作称作流。在C++中,流既可以表示数据从内存传送到某个载体或设备中,即输出流;也可以表示数据从某个载体或设备传送到内存缓冲区变量中,即输入流。在进行I/O操作时,首先打开操作,使流和文件发生联系,建立联系后的文件才允许数据流入或流出,输入或输出结束后,使用关闭操作使文件与流断开联系。 2、流类库 C++的流库(streamlibrary)使用继承方法建立起来的一个输入输出类库,它主要有两个平行的基类:streambuf类和ios类。这是两个非常低级的类,它们是所有流类的基类。 (1)streambuf类 主要负责缓冲区的处理。它提供对缓冲区的低级操作,如设置缓冲区、对缓冲区指针进行操作,从缓冲区提取字符,向缓冲区存储字符等。 类结构见图10-1。 图10-1 streambuf类及其派生类 streambuf派生类功能简介: filebuf类—提供文件缓冲区的管理。 strstreambuf类—提供了在内存中进行提取和插入操作的缓冲区管理。 stdiobuf类—提供标准I/O文件的缓冲区管理。 (2)ios类 ios类层次提供流的高级I/O操作。ios是抽象基类,提供输入输出所需的公共操作。ios类包含一个指向streambuf的指针,提供格式化I/O处理,对I/O的错误处理,设置文件模式以及提供建立相关流的方法。ios类层次见图10-2。 图10-2 ios的类层次结构 os派生类简介 istream类提供了流的大部分输入操作。主要有对streambuf进行插入时格式化和非格式化的转换,并对所有系统预定义的输入流重载提取运算符“”。它有三个派生类: ifstream文件输入流类,用于对文件的提取操作。 istrstream字符串输入流类,用于对字符串的提取操作。 istream_withassign为标准输入流cin定义的输入流类,重载了赋值运算符。 ostream类及其派生类提供流的各种格式化、非格式化操作,对所有系统预定义的输出流重载插入运算符“”。它有三个派生类: ofstream是文件输出流类。 ostrstream是串输出流类。 ostream_withassign为标准输出流cout,cerr,clog定义的输出流类,重载了赋值运算符。 由istream和ostream派生了输入输出流类iostream,综合了流的输入输出操作。他有三个派生类:文件输入输出流类fstream,串输入输出流类strstream和标准输入输出流类stdiostream。 3、头文件 C++系统的I/O类库,其所有类被包含在iostream.h,fstream.h和strstream.h这三个文件中。各头文件包含的内容如下: iostream.h :包含ios,iostream,istream,ostream等类的定义以及endl等操作符的定义。 fstream.h :包含fstream,ifstream,ofstream,fstreambase等类的定义以及iostream.h中的所有内容。 strstream.h :包含strstream,istrstream,ostrstream,strstreambase等类的定义以及iostream.h中的所有内容。 iomanip.h :包含setw等大多数操纵符的定义以

文档评论(0)

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

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

1亿VIP精品文档

相关文档