c++11 标准模板(STL)(std::basic_streambuf)(三)

news2024/11/13 12:33:37
定义于头文件 <streambuf>
template<

    class CharT,
    class Traits = std::char_traits<CharT>

> class basic_streambuf;

basic_streambuf 控制字符序列的输入与输出。它包含下列内容并提供到它们的访问:

1) 受控制字符序列,又称为缓冲区,它可含有为输入操作缓冲的输入序列(又称为获取区),和/或为输出操作缓冲的输出序列(又称为放置区)。

2) 关联字符序列,又称作(对于输入)或(对于输出)。它可以是通过 OS API 访问的实体(文件、 TCP 接头、串行端口、其他字符设备),或者可以是能转译成字符源或池的对象( std::vector 、数组、字符串字面量)。

I/O 流对象 std::basic_istream 及 std::basic_ostream ,还有所有导出自它们的对象( std::ofstream 、 std::stringstream 等),都完全以 std::basic_streambuf 实现。

 

成员函数

寻位

调用 setbuf()

std::basic_streambuf<CharT,Traits>::pubsetbuf, 
std::basic_streambuf<CharT,Traits>::setbuf

basic_streambuf<CharT, Traits>* pubsetbuf( char_type* s, std::streamsize n )

(1)

protected:
virtual basic_streambuf<CharT, Traits>* setbuf( char_type* s, std::streamsize n )

(2)

1) 调用最终导出类上的 setbuf(s, n)

2) 此函数的基类版本无效果。导出类可覆写此函数,以允许移除或替换受控制字符序列(缓冲区)为用户提供的数组,或为任何实现特定的目的。

参数

s-指向用户提供的缓冲区中首个 CharT 的指针
n-用户提供缓冲区中的 CharT 元素数

返回值

1) setbuf(s, n) 的返回值

2) this

调用 seekoff()

std::basic_streambuf<CharT,Traits>::pubseekoff, 
std::basic_streambuf<CharT,Traits>::seekoff

pos_type pubseekoff( off_type off, std::ios_base::seekdir dir,
                     std::ios_base::openmode which = ios_base::in | ios_base::out );

(1)
protected:

virtual pos_type seekoff( off_type off, std::ios_base::seekdir dir,

                          std::ios_base::openmode which = ios_base::in | ios_base::out );
(2)

相对某其他位置,设置输入和/或输出序列的位置指示器。

1) 调用最终导出类的 seekoff(off, dir, which)

2) 此函数的基类版本无效果。导出类可覆写此函数以允许位置指示器的相对寻位。

参数

off-要设置位置指示器到的相对位置。
dir-定义要应用相对偏移到的基位置。它能为下列常量之一:
常量解释
beg流的开始
end流的结尾
cur流位置指示器的当前位置
which-定义输入和/或输出序列何者有影响。它能为下列常量之一或其组合:
常量解释
in影响输入序列
out影响输出序列

注意

并非所有参数组合都可以合法,细节见 seekoff 的导出类版本。

返回值

1) seekoff(off, dir, which) 的返回值

2) 位置指示器所定义的结果绝对位置。基类版本返回 pos_type(off_type(-1)) 。

 

调用 seekpos()

std::basic_streambuf<CharT,Traits>::pubseekpos, 
std::basic_streambuf<CharT,Traits>::seekpos

pos_type pubseekpos( pos_type pos,
                     ios_base::openmode which = ios_base::in | ios_base::out );

(1)
protected:

virtual pos_type seekpos( pos_type pos,

                          ios_base::openmode which = ios_base::in | ios_base::out);
(2)

设置输入和/或输出序列的位置指示器为绝对位置。

1) 调用最终导出类的 seekpos(pos, which)

2) 此函数的基类版本无效果。导出类可覆写此函数以允许位置指示器的绝对寻位。

参数

pos-要设置位置指示器到的绝对位置。
which-定义输入和/或输出序列何者有效果。它能为下列常量之一或其组合:
常量解释
in影响输入序列
out影响输出序列

返回值

1) seekpos(pos, which) 的返回值

2) 位置指示器所定义的结果绝对位置。基类版本返回 pos_type(off_type(-1)) 。

 

调用 sync()

std::basic_streambuf<CharT,Traits>::pubsync, 
std::basic_streambuf<CharT,Traits>::sync

int pubsync();

(1)

protected:
virtual int sync();

(2)

同步受控制字符序列(缓冲区)与关联字符序列。

1) 调用最终导出类的 sync()

2) 此函数的基类版本无效果。导出类可覆写此函数以允许将底层设备与缓冲区同步。

对于输出流,这典型地导致写入放置区的内容到关联序列中,即冲入输出缓冲区。对于输入流,这典型地清空获取区并从关联序列重读取,以拾取最近的更改。默认行为(例如 std::basic_stringbuf 中找到者)不会做任何事。

参数

(无)

返回值

1) sync() 的返回值。

2) 成功时返回 ​0​ ,否则返回 -1 。基类版本返回 ​0​ 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/675825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Android手机上安装kali Linux 的 QA

本文仅提供在安装时遇到问题的解决方案&#xff0c;查看安装链接请进入教程页面。 教程 https://www.hestudio.net/posts/install-kali-on-android-renew.html 一些命令 这里只说明我的教程涉及到的命令&#xff0c;查看其他博主教程的命令请转到对应博主的文档里查看&…

Linux 学习记录38(C高级篇)

Linux 学习记录38(C高级篇) 本文目录 Linux 学习记录38(C高级篇)一、shell中的分支语句1. case...in语句2. shell中的通配符 二、shell中的循环结构1. while循环2. shell中的printf3. for循环(1. 类似C中的格式(2. shell中的格式(3. 连续列表 4. select ...in 语句5. 辅助控制关…

PyQt学习(二)-----图形的建立(柱状图,折线图,堆叠柱状图,饼图)

数据库列表如图所示&#xff0c;如何对其进行绘图&#xff1a; &#xff08;一&#xff09;柱状图的建立 (1)柱状图初始化 self.__iniBarChart() pyqtSlot()def __iniBarChart(self):chart QChart()chart.setTitle("Barchart 演示")chart.setAnimationOptions(QChar…

md5的特点以及加密原理

MD5的特点及加密原理 简介特点1.长度固定2.结果不可逆3.高度离散性4.抗碰撞性 适用场景1.用户密码保护2.文件传输完整性校验3.数字签名4.云盘秒传 加密原理一.1.对输入的内容进行补位使其长度变成 N * 512 448 &#xff08;即长度对512取余之后 余数为448&#xff09;2.再往后补…

【数据可视化】大作业(意向考研高校的数据可视化)

文章目录 前言一、数据介绍1.1 基本信息1.2 考研信息1.3 导师信息 二、预处理及分析2.1 数据预处理2.1.1 考研信息预处理2.1.2 导师信息预处理 2.2 数据分析 三、可视化方法及结果3.1 可视化方法3.2 可视化结果展示3.2.1 基本信息3.2.2 考研信息3.2.3 导师信息 四、总结五、附录…

pip install安装CPM-Bee出现ModuleNotFoundError: No module named ‘torch‘的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

WPF开发txt阅读器18:用json格式存储配置文件

文章目录 json参数保存 txt阅读器系列&#xff1a; 需求分析和文件读写目录提取类&#x1f48e;列表控件与目录&#x1f48e;快捷键翻页字体控件绑定&#x1f48e;前景/背景颜色书籍管理系统&#x1f48e;用树形图管理书籍语音播放&#x1f48e;播放进度显示&#x1f48e;快进…

网工大题题型总结(2)---设备类型及设备故障问题

&#xff08;一&#xff09;设备选择 2018年上半年 试题一 根据表 1-1 及图 1-1 可知&#xff0c;在图 1-1 中为了保护内部网络&#xff0c;实现包过滤功能&#xff0c;位置A 应部署(6)设备&#xff0c;其工作在(7)模式. &#xff08;6&#xff09;防火墙 &#xff08;7&a…

AIGC教育(续篇):探索掌握AIGC,引领未来的人才之路

&#xff08;本文阅读时间&#xff1a;5 分钟&#xff09; 1 未来人才的核心竞争力&#xff1a; 蓬勃绽放的潜力 展望未来&#xff0c;我们不禁思考&#xff1a;当自动化工具日益普及&#xff0c;且代替人力的成本并不高昂时&#xff0c;每个人的工具属性在未来工作中所占比重必…

Git提交规范

目录 1、commit message format消息格式 2、还原 3、提交类型 4、Subject 5、Body 6、Footer 7、git-commit-plugin 插件 以下规范参考Angular提交的规范。 对于如何格式化git commit消息&#xff0c;我们有非常精确的规则。 这导致更多 在浏览项目历史时&#xff0c;易…

【Visual Studio】报错 C2653,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 这个 Bug 是我做这个工程时遇到的&#xff1a;【Visual Studio】Qt 的实时绘图曲线功能&#xff0c;使用 C 语言&#xff0c;配合 Qt 开发串口通信界面。 文…

【面试】标准库相关题型(一)

文章目录 1. vector底层实现原理1.1 类构成1.2 构造函数1.3 插入元素1.4 删除元素1.5 读取元素1.6 修改元素1.7 释放空间 2. vector内存增长机制2.1 特点2.2 内存增长特性2.3 内存增长过程2.4 内存清理2.5 注意事项 3. vector中reserve和resize的区别3.1 共同点3.2 区别3.3 应用…

LangChain入门介绍

原文首发于博客文章LangChain介绍 我们先看看官方的定义 LangChain是一个基于语言模型开发应用程序的框架。它可以实现以下应用程序&#xff1a; 数据感知&#xff1a;将语言模型连接到其他数据源自主性&#xff1a;允许语言模型与其环境进行交互 LangChain的主要价值在于&…

现在可以使用开发者工具为苹果Vision Pro创建空间体验

库比蒂诺&#xff0c;加利福尼亚—苹果公司今天宣布&#xff0c;全新的软件工具及技术现已可供开发者使用&#xff0c;它们能够用于为苹果首款空间计算机—Apple Vision Pro&#xff0c;创造出独特且前所未有的应用体验。Vision Pro具备visionOS&#xff0c;这是全球首款空间操…

【ABAP】数据类型(三)「数据字典数据类型」

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后端的开发语言A…

Unity简单的移动相机

Unity3D制作一个会移动的方块&#xff08;还不会移动照相机&#xff09;_SMG_DSG的博客-CSDN博客 接着上一次的文章代码&#xff0c;我们继续写&#xff0c;其实简单的移动也是非常简单&#xff0c;我们只需要使用一个相机一直面对着方块的函数就行了 好了&#xff0c;废话不…

Tkinter之窗口布局介绍

Tkinter之窗口布局介绍 关于Python 的Tkinter窗口基础可参见https://blog.csdn.net/cnds123/article/details/127227651 Tkinter 之几何管理器&#xff08;geometry manager&#xff09;&#xff0c;也叫布局&#xff08;layout&#xff09;&#xff0c;是用来控制窗体中小部…

STM32单片机(八)DMA直接存储器存取----第二节:DMA直接存储器存取练习(DMA数据转运和DMA+AD多通道)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

PyTorch深度学习实战(4)——常用激活函数和损失函数详解

PyTorch深度学习实战&#xff08;4&#xff09;——常用激活函数和损失函数详解 0. 前言1. 常用激活函数1.1 Sigmoid 激活函数1.2 Tanh 激活函数1.3 ReLU 激活函数1.4 线性激活函数1.5 Softmax 激活函数 2. 常用损失函数2.1 均方误差2.2 平均绝对误差2.3 分类交叉熵 2.4 实现自…

分享一组开关按钮

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>豆子开关</title><style>* {margin: 0;padding: 0;box-sizing: border-box;-webkit-tap-hi…