第7章输入输出流.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3、对内存中指定的空间进行输入输出。通常指定一个字符组作为储存空间(实际上可以利用该空间储存任何信息)。这种输入输出称为字符串输入输出,简称串I/O。 C++采取不同的方式来实现以上3种输出输入。 为了实现数据的有效流动,C++系统提供了庞大的I/O类库,调用不同的类去实现不同的功能。 7.1.2 c++的I/O对c的发展—类型安全和可扩展性 C++为了与c兼容,保留了用printf和scanf进行输入和数出的方法,以便使过去所编写的大量的c程序仍然可以在c++的环境下运行,但是希望读者在编写新的C++程序时不要用C的输入输出机制,而要用C++自己特有的输入输出方法。在C++的输入输出中,便以系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。因此C++的I/O的操作是类型安全的。 用printf和scanf可以输入和输出标准类型的数据,但无法输出用户自己声明的类型的数据。在C++中,会经常用到对类对象的输入输出,显然无法使用printf和scanf来处理。C++的I/O操作是可扩展的,不仅可以用来输入输出标准类型的数据也可以用于用户自定义类型的数据。C++对标准类型的数据和对用户声明类型的数据的输入输出,采用同样的方法处理。显然,在用户声明了一个新类后是无法用printf和scanf函数直接输出和输入这个类的对象的。 可扩展性是C++输入输出的重要特点之一,它能提高软件的重用性,加快软件的开发过程。 7.1.3 c++的输入与输出流 C++的输入输出流式指由若干字节组成的字节序列,这些字节中的数据按顺序从一个对象传到另一个对象。流表示了信息从源到目的端的流动。 对iostream类的对象进一步的理解 1、iostream类库中的有关类 2、与iostream类库有关的头文件 3、在iostream头文件中定义的流对象 4、在isotream头文件中重载运算符 7.2 标准输出流 7.2.1 cout、cerr和clog流 ostream类定义了3个输出流对象,即cout,cerr,clog。 1、cout流对象 cout是console output的缩写,意为在控制台(终端显示器)的输出 (1)cout不是C++预定义的关键字,它是ostream流类的对象,在iostream中定义。 (2)用“cout”输出基本类型的数据时,可以不考虑数据是什么类型,系统会判断数据的类型,并根据其类型选择调用与之匹配的运算符重载函数。 (3)cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl时,不论缓冲区是否已満,都立即输出流中所有数据,然后插入一个换行符,并刷新流(清空缓冲区)。 (4)在iostream中只对“<<”和“>>”运算符用于标准类型数据的输出进行了重载,但未对用户声明的类型数据的输入输进行重载。 2.cerr流对象 cerr流对象是标准错误流。cerr流已被指定与显示器关联。cerr的作用是向标准错误设备(standard error device)输出有关错信息。cerr是console error 的缩写,意为“在控制台(显示器) 显示出错信息”。 3. clog流对象 clog流对象也是标准错误流,它是console log的缩写。它的作用和cerr相同,都是在终端显示器上显示出错信息。它们之间有一个微小的区别:cerr是不经过缓冲区,直接向显示器上输出有关信息,而clog中的信息存放在缓冲区中,缓冲区満后或遇endl时向显示器输出。 7.2.2 格式输出 1.使用控制符控制输出格式 例7.2用控制符控制输出格式。 #include iostream #include iomanip using namespace std; int main() {int a; coutinput a:; cina; coutdec:decaendl; couthex:hexaendl; coutoct:setbase(8)aendl; char *pt=China; coutsetw(10)ptendl; coutsetfill(*)setw(10)ptendl; double pi=22.0/7.0; coutsetiosflags(ios::scientific)setprecision(8); coutpi=piendl; coutpi=setprecision(4)piendl; coutpi=setiosflags(ios::fixed)piendl; return 0; } 2.用流对象的成员函数控制输出格式 除了可以用控制符来控制输出格式外,还可以通过调用流对象cout中用于控制输出格式的成员函数来控制

文档评论(0)

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

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

1亿VIP精品文档

相关文档