谭浩强c__程序设计第13章

第13章 输入输出流 13.1 C++的输入和输出 13.2 标准输出流 13.3 标准输入流 13.4 文件操作与文件流 13.5 字符串流 13.1 C++的输入和输出 13.1.1 输入输出的含义 以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上。从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件。除了以终端为对象进行输入和输出外,还经常用磁盘(光盘)作为输入输出对象,磁盘文件既可以作为输入文件,也可以作为输出文件。 程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件。C++的输入与输出包括以下3方面的内容: (1) 对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。 (2) 以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。以外存文件为对象的输入输出称为文件的输入输出,简称文件I/O。 (3) 对内存中指定的空间进行输入和输出。通常指定一个字符数组作为存储空间(实际上可以利用该空间存储任何信息)。这种输入和输出称为字符串输入输出,简称串I/O。 C++采取不同的方法来实现以上3种输入输出。 为了实现数据的有效流动,C++系统提供了庞大的I/O类库,调用不同的类去实现不同的功能。 13.1.2 C++的I/O对C的发展——类型安全和可扩展性 在C语言中,用printf和scanf进行输入输出,往往不能保证所输入输出的数据是可靠的、安全的。 在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。因此C++的I/O操作是类型安全(type safe)的。 C++的I/O操作是可扩展的,不仅可以用来输入输出标准类型的数据,也可以用于用户自定义类型的数据。C++对标准类型的数据和对用户声明类型数据的输入输出,采用同样的方法处理。 C++通过I/O类库来实现丰富的I/O功能。C++的输入输出优于C语言中的printf和scanf,但是比较复杂,要掌握许多细节。 13.1.3 C++的输入输出流 C++的输入输出流是指由若干字节组成的字节序列,这些字节中的数据按顺序从一个对象传送到另一对象。流表示了信息从源到目的端的流动。在输入操作时,字节流从输入设备(如键盘、磁盘)流向内存,在输出操作时,字节流从内存流向输出设备(如屏幕、打印机、磁盘等)。流中的内容可以是ASCII字符、二进制形式的数据、图形图像、数字音频视频或其他形式的信息。 实际上,在内存中为每一个数据流开辟一个内存缓冲区,用来存放流中的数据。流是与内存缓冲区相对应的,或者说,缓冲区中的数据就是流。 在C++中,输入输出流被定义为类。C++的I/O库中的类称为流类(stream class)。用流类定义的对象称为流对象。 cout和cin并不是C++语言中提供的语句,它们是iostream类的对象,在未学习类和对象时,在不致引起误解的前提下,为叙述方便,把它们称为cout语句和cin语句。 在学习了类和对象后,我们对C++的输入输出应当有更深刻的认识。 1. iostream类库中有关的类 C++编译系统提供了用于输入输出的iostream类库。iostream这个单词是由3个部分组成的,即i-o-stream,意为输入输出流。在iostream类库中包含许多用于输入输出的类。常用的见书中表13.1。 ios是抽象基类,由它派生出istream类和ostream类,两个类名中第1个字母i和o分别代表输入(input)和输出(output)。istream类支持输入操作,ostream类支持输出操作,iostream类支持输入输出操作。 iostream类是从istream类和ostream类通过多重继承而派生的类。其继承层次见图13.1表示。 图13.1 C++对文件的输入输出需要用ifstream和ofstream类,两个类名中第1个字母i和o分别代表输入和输出,第2个字母f代表文件(file)。ifstream支持对文件的输入操作,ofstream支持对文件的输出操作。类ifstream继承了类istream,类ofstream继承了类ostream,类fstream继承了类iostream。见图13.2。 图13.2 I/O类库中还有其他类,见图13.3。 图13.3 2. 与iostream类库有关的头文件 iostream类库中不同的类的声明被放在不同的头文件中,用户在自己的程序中用#include命令包含了有关的头文件就相当于在本程序中声明了所需要用到的类。可以换一种说法:

在c语言中,字符串topt65的长度是,谭浩强c__程序设计第13章.ppt相关推荐

  1. 在c语言中,字符串topt65的长度是,c语言程序设计期末考试试题(含答案)123612210...

    <c语言程序设计期末考试试题(含答案)123612210>由会员分享,可在线阅读,更多相关<c语言程序设计期末考试试题(含答案)123612210(10页珍藏版)>请在人人文库 ...

  2. 谭浩强C++课后习题13——整数转化为字符串,求i平方和

    谭浩强C++课后习题13--整数转化为字符串,求i平方和 题目一:用递归法将一个整数n转化为字符串.例如,输入483,应输出字符串"483".n的位数不确定,可以是任意位数的整数. ...

  3. c语言中二维数组中维数的计算,数组指针字符串C语言程序设计-第4章.ppt

    <数组指针字符串C语言程序设计-第4章.ppt>由会员分享,可在线阅读,更多相关<数组指针字符串C语言程序设计-第4章.ppt(132页珍藏版)>请在人人文库网上搜索. 1.程 ...

  4. c语言中if条件语句说课内容,if语句-ppt-说课--试讲-C语言.ppt

    数学与计算机学院计算机科学与技术龙昌海,c语言--if语句,教材分析,教材分析,1.教材的地位和作用<条件选择语句if>这一节位于本书第五章第二节,我所说的是第一课时.选择语句if是整个课 ...

  5. 谭浩强C语身教程第一章---C措辞概述(2)

    1.1    Turbo C 2.0集成开发环境的运用 1.1.1   Turbo C 2.0简介和启动 我们上机操练和将来测验都是运用Borland Turbo C 2.0这个版本.该零碎是DOS应 ...

  6. c语言中switch结构,switch结构c语言

    C语言中switch结构的使用 用switch结构编制程序,输入1个学生的C语言课程考试成绩(百分制整形数因为case后面不能接范围,也就是说case后面是一个确实固定的常量.用下面的方法比较好, # ...

  7. C语言中.h文件和.c文件如何理解?看完详细解析,小白也能懂!

    简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:        1.预处理阶段 2.词法与语法分析阶段        3.编译 ...

  8. c语言中.h文件和.cpp文件解析

    理论上来说cpp文件与头文件里的内容,只要是C语言所支持的,无论写什么都可以的,比如你在头文件中写函数体实现,任何一个cpp文件包含此头文件就可以将这个函数编译成目标文件的一部分(编译是以cpp文件为 ...

  9. c语言switch语句支持的字符有哪些,C语言中switch()语句的括号内可以是什么型别的呢?...

    C语言中switch()语句的括号内可以是什么型别的呢?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言中swit ...

最新文章

  1. 用一个比喻说明项目里各个成员的角色
  2. simulink和psim仿真结果不同_CAE仿真分析规范是什么?涨知识啦!
  3. 如何确保SAP OData服务的返回结构为JSON格式
  4. java数组交集_java数组的交集和并集
  5. mysql gui 分区_一文彻底搞懂MySQL分区
  6. python颜色填充代码_求懂WORD的大佬怎么一次性填充颜色或者使用python识别
  7. 【Absible学习】Ansible普通用户sudo执行指令
  8. 《健康报》携手健康之路帮助医院医生免费搭建微官网
  9. HDU 2955 Robberies(概率DP,01背包)题解
  10. 由一道题目看抽象向量组的线性相关问题
  11. 经典水晶报表设计三则
  12. 【深入理解Java原理】ThreadLocal
  13. 单反拍摄技巧:利用直方图曝光
  14. 代码在线执行工具(PHP,Java,C++ 等)
  15. root后充电很慢,root后开机慢
  16. Aleo Wagyu钱包
  17. 不知道Android开发中有哪些权限?看这里
  18. HTML + CSS实现动态背景的登录效果
  19. GlusterFS概述
  20. 施罗德: 以大数据技术洞悉投资先机,同时管理风险

热门文章

  1. 对Windows桌面应用程序进行UI自动化测试
  2. 对产品质量的一点思考
  3. BotSharp v0.2 发布, 支持微信智能回复
  4. asp.net core后台系统登录的快速构建
  5. Redola.Rpc 集成 Consul 服务发现
  6. Microsoft使用.NET Core SDK遥测数据
  7. Vue+Axios同步请求
  8. 电机与系统计算机仿真作业,北邮计算机仿真期末大作业.docx
  9. 【ArcGIS遇上Python】ArcGIS Python获取Shapefile矢量数据字段名称
  10. 【Envi风暴】Envi5.4经典安装图文教程