C++ Iostreams用法详解(四)缓冲区

在前面说到过每一个iostream对象都有一个缓冲区,我们称之为流缓冲区,那个这个所谓的流缓冲区是怎 么存在的呢?iostreams中将该流缓冲区抽象为一个类,即streambuf类。

每个iostream的类都会包含 一个指向streambuf对象的指针,这也就意味着我们可以直接的去访问到这个指针,并向该streambuf对象发送 消息等(但是一般情况下我们并不需要这样做)。

既然说我们可以得到这个指针,那isotreams类当然 会提供访问的接口了,这就是const成员函数rdbuf(),它会返回iostream对象所有的streambuf也就是缓冲区 的指针。那这个缓冲区的指针有什么用呢?最常用的就是直接对其进行输入输出操作,看下面的例子:

1.txt内容:
hello world~~!!
my name is zorro.
nice to meet you~
int main() {

    ifstream fin("1.txt");

    cout << fin.rdbuf() << endl;

    system("pause");

    return 0;

}

上面的程序输出为:

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索指针
, 对象
, iostream
, cout 输出流
, 缓冲区
, 指针的用法
, iostream数据结构
, 一个
, C++指针详解
直接
boost iostreams、英语数词用法详解、英语宾语从句用法详解、条件函数if的用法详解、英语动词时态用法详解,以便于您获取更多的相关知识。

时间: 2024-11-03 21:58:12

C++ Iostreams用法详解(四)缓冲区的相关文章

C++ Iostreams用法详解(三)状态标志位

iostreams中共有四个状态标志位定义在ios_base中,具体如下: namespace std { class ios_base { public: typedef implementation-defined-bitmask-type iostate; static const iostate badbit; static const iostate eofbit; static const iostate failbit; static const iostate goodbit;

C++ Iostreams用法详解(二)标准输入输出

首先说我们最常用的两个全局对象cin和cout,以下摘自MSDN: You can then extract values from cin or wcin to read the standard input. The rules for doing so are outlined in the description of the class basic_istream Class. You can also insert values to cout or wcout to write t

Java 中 synchronized的用法详解(四种用法)_java

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码.  1.方法声明时使用,放在范围操作符(public等)之后,返回类型声明(void等)之前.这时,线程获得的是成员锁,即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线程才能进入. 例如: public synchronized void synMethod() { //方法体 }

C++ Iostreams用法详解(一)整体把握

个人觉得C++的iostream用起来是非常方便的,只需要使用简单的<<和>>运算符就可以方便的 进行各种类型的数据的格式化输入输出.而且C++中的iostream在编译阶段完成输入输出的格式化解析的,比C 中的printf()和scanf()在运行时格式化解析要更加安全和强大.在这个系列中我就来详细的介绍一下C++中各 种输入输出流的用法. 首先来大致了解一下C++中的iostreams,我们用到的所有的相关的内容都会定 义在下面的这些头文件里: <fstream>

Java RandomAccessFile的用法详解_java

RandomAccessFile RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须是可知的.但是该类仅限于操作文件. RandomAccessFile不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和 DataOutput接口之外(DataInputStream和DataOutputStream也实现了这两个接口),它和这两个类系毫

javascript jquery-jquery中getScript()的用法详解,从一个远程js文件中读取数据

问题描述 jquery中getScript()的用法详解,从一个远程js文件中读取数据 第一个html文件: <html> <head> <script type="text/javascript" src="jquery-2.1.3.js"></script> $.getScript("shuj.js",function(){alert("aaaaa");}) </hea

Masonry自动布局详解四:整体动画更新约束

Masonry自动布局详解四:整体动画更新约束 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万大量代码的冗余,对维护和开发的效率都很低. 笔者在这里介绍纯代码自动布局的第三方库:Masonry.这个库使用率相当高,在全世界都有大量的开发者在使用,其star数量也是相当高的. 效果图 本节详解Masonry的以动画的形式更新约束的基本用法,先看看效果图

jQuery-mobile事件监听与用法详解_jquery

本文实例讲述了jQuery-mobile事件监听与用法.分享给大家供大家参考,具体如下: 触摸事件 - 当用户触摸屏幕时触发(敲击和滑动) 滚动事件 - 当上下滚动时触发 方向事件 - 当设备垂直或水平旋转时触发 页面事件 - 当页面被显示.隐藏.创建.加载以及/或卸载时触发 一.初始化事件 1. ready 事件 页面加载完成 $(document).ready(function(){ //your code here... }); 2. 页面加载完成事件二 pageinit $(docume

MultiByteToWideChar和WideCharToMultiByte用法详解, ANSI和UNICODE之间的转换

//========================================================================//TITLE://    MultiByteToWideChar和WideCharToMultiByte用法详解//AUTHOR://    norains//DATE://    第一版:Monday  25-December -2006//    增补版:Wednesday 27-December -2006//    修订版:Wednesda