第14章输入输出及文件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
流与标准库 输入输出缓冲 基于控制台的I/O 基于文件的I/O 基于字符串的I/O 流的概念及用途 输入输出是指程序与外部设备交换信息 ?I/O操作是以对数据类型敏感的方式执行的。C++的I/O操作是以字节流的形式实现的。流实际上就是字节序列。 C++提供了高级I/O功能。高级I/O功能把若干个字节组合成有意义的单位,如整数、浮点数、字符、字符串以及用户自定义类型的数据。 C++提供了无格式I/O和格式化I/O两种操作。 无格式I/O传输速度快,但使用起来较为麻烦。 格式化I/O按不同的类型对数据进行处理,但需要增加额外的处理时间,不适于处理大容量的数据传输。 在C++中,输入输出不是语言所定义的部分,而是由标准库提供。 C++的输入输出分为: 基于控制台的I/O 基于文件的I/O 基于字符串的I/O 流与标准库: 面向对象的输入输出是通过C++的输入/输出类库来实现的 类的继承关系 流与标准库 输入输出缓冲 基于控制台的I/O 基于文件的I/O 基于字符串的I/O 输入输出缓冲 C++的输入输出是基于缓冲实现的 每个I/O对象管理一个缓冲区,用于存储程序读写的数据。 当用cout和插入运算符“”向显示器输出数据时,先将这些数据送到程序中的输出缓冲区保存,直到缓冲区满了或遇到endl,就将缓冲区中的全部数据送到显示器显示出来。 在输入时,从键盘输入的数据先放在键盘缓冲区中,当按回车键时,键盘缓冲区中的数据输入到程序中的输入缓冲区,形成cin流,然后用提取运算符“”从输入缓冲区中提取数据送给程序中的有关变量。 总之,流是与内存缓冲区相对应的,或者说,缓冲区中的数据就是流。 流与标准库 输入输出缓冲 基于控制台的I/O 基于文件的I/O 基于字符串的I/O 基于控制台的I/O 基于控制台的输入/输出的支持主要包含在两个头文件中: iostream和iomanip 头文件iostream声明了所有I/O操作所需要的基础服务,定义了4个标准的输入输出流对象 cin是类istream的对象,它与标准输入设备(常指键盘)连在一起。 cout是类ostream的对象,它与标准输出设备(常指显示设备)连在一起。 cerr是类osteam的对象,它与标准错误输出设备连在一起。??? clog是类ostream的对象,它与标准错误输出设备连在一起。 cerr流对象: 类osteam的对象,与标准错误输出设备连在一起。 cerr的作用是 向控制台(显示器)显示出错信息。对象cerr的输出是非缓冲输出,也就是说插入到cerr中的输出会被立即显示出来,非缓冲输出可迅速把出错信息告诉用户。 cerr与标准输出流cout:作用和用法差不多。但有一点不同:cout流可传送到显示器输出,也可以被重定向输出到磁盘文件,而cerr流中的信息只能在显示器输出。当调试程序时,往往不希望程序运行时的出错信息被送到其他文件,而要求在显示器上及时输出,这时应该用cerr。 clog流对象:类ostream的对象,与标准错误输出设备连在一起。对象clog的输出是缓冲输出。即每次插入clog可能使其输出保持在缓冲区,要等缓冲区刷新时才输出。 基于控制台的I/O 输出流 输入流 格式化输入/输出 输出流(ostream) C++的类ostream提供了格式化输出和无格式输出的功能 输出功能包括 用流插入运算符()输出标准类型的数据; 用成员函数put输出字符; 成员函数write的无格式化输出; 1. 输出标准类型的数据 标准类型的数据用流插入运算符输出 格式: cout 数据项 ; C++能自动判别数据类型,并根据数据类型解释内存单元的信息,把它转换成字符显示在显示器上。 输出流 #include iostream using namespace std; int main() { int a = 5, *p = a; double x = 1234.56; char ch = a‘, *pch=“ab”; cout a = a endl; cout x = x endl; cout ch = ch endl; cout *p = *p endl; cout p = p endl; cout ?*pch = *pch endl; cout pch = pch endl; return 0; } 指针输出的特例 如果输出的指针变量是一个指向字符的指针时,C++并不输出该指针中保存的地址,而是输出该指针指向的字符串。 如果确实想输出这个指向字符的指针变量中保存的地址值,可以 用强制类型转换,将它转

文档评论(0)

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

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

1亿VIP精品文档

相关文档