收藏 分享(赏)

C++中的istream和ostream流.docx

上传人:hwpkd79526 文档编号:8090531 上传时间:2019-06-08 格式:DOCX 页数:4 大小:56.53KB
下载 相关 举报
C++中的istream和ostream流.docx_第1页
第1页 / 共4页
C++中的istream和ostream流.docx_第2页
第2页 / 共4页
C++中的istream和ostream流.docx_第3页
第3页 / 共4页
C++中的istream和ostream流.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、一、istream/ostream 流的基本概念C+中的输入方法类和输出方法类都继承自 IOS 基类,见下图:输入和输出操作分别由输入流 istream 和输出流 ostream 提供。iostream 继承自 istream 和 ostream,允许双向的输入/输出操作。二、iostream 标准库的 IO 对象iostream 标准库定义了四个 IO 对象:1.cin - 代表标准输入的 istream 类型对象;2.cout - 代表标准输出的 ostream 类型对象;3.cerr - 代表标准错误的 ostream 类型对象,通常用来输出警告和错误信息;4.clog - 代表标准错误

2、的 ostream 类型对象,用来产生程序执行的一般信息。一般情况下,系统将这些对象与执行窗口联系起来。在大多数系统下,可以利用重定向,将这些流与所选择的文件联系起来。cout、cerr、clog 三者的区别:1.cout 经过缓冲后输出,默认输出到标准输出设备(显示器)上,可以被重定向;2.cerr 不经过缓冲而直接输出,用于迅速输出错误信息,默认输出到标准输出上。由于不被缓冲,错误消息直接发到显示器。一般不被重定向。3.clog 是 cerr 的缓冲版本。cout、cerr 的重定向:(C+标准中 cerr 不能被重定向,但是多数编译器都支持 cerr 的重定向)使用 rdbuf()函数可

3、以对 cout 和 cerr 进行重新定向,代码如下:ofstream ofs(“test.txt“);streambuf* pOutBuf = cout.rdbuf(ofs.rdbuf();streambuf* pErrBuf = cerr.rdbuf(ofs.rdbuf();cout ”操作符会丢弃遇到的空白(空格、制表符、换行、回车等),而 get 不会。get 函数有三种重载:a. int get(); 从输入流中读取一个字符,返回该字符的 int 值,遇到文件结束符时,返回 EOF;b. istream从输入流中读取一个字符,存储在 ch 中;c. istream从输入流中读取最多

4、size-1 个字符,放入首地址为 dst 的内存中,会在末尾加0。遇到 delimiter 时终止读取,delimiter 会留在输入流中。3.getline()istream与 get 函数的第三个版本类似,不同之处在于 getline 会读取delimiter 然后把它丢弃。4.ignore()istream跳过输入流中 n 个字符,遇到终止符提前结束(此时跳过包括终止符在内的若干字符),此时终止符仍留在流内。5.putback()istream把上一次通过 get 或 getline 取得的字符再放回输入流中。6.peek()int peek();检查输入流中的下一个字符,它不会删除该字符,字符指针也不会移动。7.gcount()streamsize gcount();返回最后一个非格式化方法(get/getline/ignore/read)读取的字符数。注: 不是非格式化方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报