- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chapter07-c的输入和输出
面向对象程序设计技术 第7章 C++的输入和输出 内容提要 C++为何建立自己的输入输出系统 C++的流库及其基本结构 预定义类型的输入输出 无格式输入输出 格式化输入输出 用户自定义类型的输入输出 重载输出运算符“” 重载输入运算符“” 文件的输入输出 7.1 C++为何建立自己的输入输出系统 C++的输入输出系统比C语言更安全、更可靠 C语言的编译系统不对数据类型的合法性进行检查 用C++的输入输出系统进行操作是类型安全的 C++中需要定义众多的用户自定义类型 用户自定义类型 结构体、类等 C语言无法对这些数据进行输入输出操作 C语言中的scanf和printf 7.1.1 数据类型的合法性 int i; //假定int型占两个字节 float f; //假定float型占四个字节 scanf(“%d”,i); //错误,漏 scanf(“%d”,i); //正确 printf(“%d”,i); //正确 printf(“%d”,f); //错误,输出f变量中前两个字节的内容 7.1.2 C++的类 ? 对上述类型,在C语言中下面的语句不能接受: printf("% my_class",obj); 7.1.3 C++的输入输出系统 C++的流类比C的输入输出函数具有更大的优越性 它是类型安全的 防止格式控制符与输出数据的类型不一致 可以重载运算符“”和“” 用于用户自定义类型的输入和输出 书写形式简单清晰 使得程序代码具有更好的可读性 7.2 C++的流库及其基本结构 C++的流 在自然界中,流是气体或液体运动的一种状态 在C++中,“流” 是数据从一个源流到一个目的的抽象 负责在数据的生产者和消费者之间建立联系 并管理数据的流动 “流”是指数据传递的操作与管理 C++流类库 C++的输入输出是以字节流的形式实现的 字节流:ASCⅡ字符、二进制数据、图形图像、音频视频等 文件流和字符串流:有序的字节流 I/O类库 流类:I/O类库中包含许多用于输入输出的类 流对象:用流类定义的对象 7.2.1 C++的流 在C++中,流类 是为输入输出提供的一组类 它们都放在流库中 流总是与某一设备相联系 例如:键盘、屏幕或硬盘等 使用流类中定义的方法,完成对这些设备的I/O操作 流具有方向性 输入流 与输入设备(如键盘)相联系的流 输出流 与输出设备(如屏幕)相联系的流 输入输出流 与输入输出设备(如磁盘)相联系的流 7.2.2 流对象 C++中包含几个预定义的流对象 标准输入流 cin 与标准输入设备相关联 标准输出流 cout 与标准输出设备相关联 非缓冲型的标准出错流 cerr 与标准错误输出设备相关联(非缓冲方式) 缓冲型的标准出错流 clog 与标准错误输出设备相关联(缓冲方式) 在缺省情况下,指定的标准输出设备是屏幕,标准输入设备是键盘 7.2.3 流类库 C++流类库具有两个平行的基类 streambuf类 为输入输出操作在物理设备一方的接口 负责低层操作 ios类 为输入输出操作在用户一方的接口 负责高层操作 所有其他的流类都是从它们直接或间接地派生出来的 7.3 预定义类型的输入输出 无格式输入输出 格式化输入输出 7.3.1无格式输入输出 C++类库的输入输出 需使用两个流对象cin和cout 还要用与之相配套的输入输出运算符“”和“” 其一般的格式为 cin变量; // 输入 cout 常量或变量; // 输出 输入运算符“” 也称提取运算符 它是一个双目运算符,有两个操作数 左操作数是istream类的一个对象( cin ) 右操作数是系统预定义的任何数据类型的变量 例如: int x; cinx; 此时,用户从键盘输入的数值会自动地转换为变量x的类型,并存入变量x内。 输出运算符“” 也称插入运算符 它是一个双目运算符,有两个操作数 左操作数为ostream类的一个对象(cout) 右操作数为一个系统预定义类型的常量或变量 例如 coutThis is a string.\n; 完成的功能为 写字符串“This is a string. ”到流对象cout cout为标准输出流,通常为屏幕 7.3.2 格式化输入输出 C++提供了两种进行格式控制的方法 使用ios类中有关格式控制的成员函数进行格式控制 格式控制主要是通过对状态标志字的操作来完成的 在ios类的public部分定义了一个枚举,它的每个成员分别定义状态标志字的一个位,每一位都称为一个状态标志位。 使用称为操纵符的特殊类型的函数进行格式控制 C++提供的预定义操纵符 ios类的状态标志字 ios类的状态标志位 这些枚举元素的值有一个共同的特点 分别使二进制表示
文档评论(0)