c++11 标准模板(STL)(std::ios_base)成员类型与常量
流打开模式类型
std::ios_base::openmode
typedef /*implementation defined*/ openmode; |
static constexpr openmode app = /*implementation defined*/ static constexpr openmode binary = /*implementation defined*/ |
指定可用的文件打开标志。它是位掩码类型 (BitmaskType) ,下列常量得到定义:
常量 | 解释 |
app | 每次写入前寻位到流结尾 |
binary | 以二进制模式打开 |
in | 为读打开 |
out | 为写打开 |
trunc | 在打开时舍弃流的内容 |
ate | 打开后立即寻位到流结尾 |
格式化标志类型
std::ios_base::fmtflags
typedef /*implementation defined*/ fmtflags; |
static constexpr fmtflags dec = /*implementation defined*/ static constexpr fmtflags oct = /*implementation defined*/ |
static constexpr fmtflags left = /*implementation defined*/ static constexpr fmtflags right = /*implementation defined*/ |
static constexpr fmtflags scientific = /*implementation defined*/ static constexpr fmtflags fixed = /*implementation defined*/ static constexpr fmtflags floatfield = scientific | fixed; |
static constexpr fmtflags boolalpha = /*implementation defined*/ static constexpr fmtflags showbase = /*implementation defined*/ |
指定可用的格式化标志。它是位掩码类型 (BitmaskType) 。定义下列常量:
常量 | 解释 |
dec | 为整数 I/O 使用十进制底:见 std::dec |
oct | 为整数 I/O 使用八进制底:见 std::oct |
hex | 为整数 I/O 使用十六进制底:见 std::hex |
basefield | dec|oct|hex 。适用于掩码运算 |
left | 左校正(添加填充字符到右):见 std::left |
right | 右校正(添加填充字符到左):见 std::right |
internal | 内部校正(添加填充字符到内部选定点):见 std::internal |
adjustfield | left|right|internal 。适用于掩码运算 |
scientific | 用科学记数法生成浮点类型,或若与 fixed 组合则用十六进制记法:见 std::scientific |
fixed | 用定点记法生成浮点类型,或若与 scientific 组合则用十六进制记法:见 std::fixed |
floatfield | scientific|fixed 。适用于掩码运算 |
boolalpha | 以字母数字格式插入并释出 bool 类型:见 std::boolalpha |
showbase | 生成为整数输出指示数字基底的前缀,货币 I/O 中要求现金指示器:见 std::showbase |
showpoint | 无条件为浮点数输出生成小数点字符:见 std::showpoint |
showpos | 为非负数值输出生成 + 字符,见 std::showpos |
skipws | 在具体输入操作前跳过前导空白符:见 std::skipws |
unitbuf | 在每次输出操作后冲入输出:见 std::unitbuf |
uppercase | 在具体输出的输出操作中以大写等价替换小写字符:见 std::uppercase |
流状态类型
std::ios_base::iostate
typedef /*implementation defined*/ iostate; |
static constexpr iostate goodbit = 0; |
static constexpr iostate badbit = /*implementation defined*/ static constexpr iostate failbit = /*implementation defined*/ static constexpr iostate eofbit = /*implementation defined*/ |
指定流状态标志。它是位掩码类型 (BitmaskType) ,定义下列常量:
常量 | 解释 |
goodbit | 无错误 |
badbit | 不可恢复的流错误 |
failbit | 输入/输出操作失败(格式化或提取错误) |
eofbit | 关联的输出序列已抵达文件尾 |
eofbit
下列标准库函数设置 eofbit :
- string 输入函数 std::getline ,若它以抵达流结尾,而非抵达指定的终止字符完成。
- basic_istream::operator>> 的数值输入重载,若在 num_get::get 处理的阶段 2 ,读取下个字符时遇到流结尾。取决于分析状态,可能或可能不同时设置
failbit
:例如 int n; istringstream buf("1"); buf >> n; 设置eofbit
,但不设置failbit
:成功分析整数 1 并存储之于n
。另一方面, bool b; istringstream buf("tr"); buf >> boolalpha >> b; 一同设置eofbit
和failbit
:无足够的字符完成布尔 true 的分析。 - operator>>std::basic_istream 的字符释出重载,若在释出字符数量上的限制(若存在)前抵达流结尾。
- std::get_time I/O 操纵符和任何 std::time_get 分析函数: time_get::get 、 time_get::get_time 、 time_get::get_date 等,若在分析期待的被处理日期/时间值所需的最末字符前抵达流结尾。
- std::get_money I/O 操纵符和 money_get::get 函数,若在分析期待的被处理货币值所需的最末字符前抵达流结尾。
- basic_istream::sentry 构造函数,在每个有格式输入函数的起始执行:除非未设置
skipws
(例如通过发布 std::noskipws ),否则 sentry 会读取并舍弃前导空白字符。若在此操作中抵达流结尾,则一同设置eofbit
和failbit
,并且不发生输入。 - I/O 操纵符 std::ws ,若它在消耗空白符时抵达流结尾(但不同于有格式输入 sentry ,此情况下它不设置
failbit
) - 无格式输入函数 basic_istream::read 、 basic_istream::get 、 basic_istream::peek 和 basic_istream::getline 在抵达流尾时。
- 舍弃输入函数 basic_istream::ignore ,在抵达指定的分隔字符前抵达流结尾时。
- 立即输入函数 basic_istream::readsome ,若 basic_streambuf::in_avail 返回 -1
下列函数作为副效应清除 eofbit
:
- basic_istream::putback
- basic_istream::unget
- basic_istream::seekg
注意在几乎所有情况下,若设置 eofbit ,则一同设置 failbit 。
failbit
下列标准库函数设置 failbit :
- basic_istream::sentry 构造函数,在每个输入函数起始执行,若流上已设置
eofbit
或badbit
,或若在消耗前导空白时遇到流结尾。 - basic_ostream::sentry 构造函数,在每个输出函数起始执行,在实现定义的条件下。
- operator>>(std::basic_string<>) ,若函数未从输入流释出字符。
- operator>>(std::complex<>) ,若函数无法释出合法的复数。
- operator>> 的字符数组和单字符重载,若它们无法释出字符。
- basic_istream::operator>> 的 streambuf 重载,若 streambuf 参数为空指针或若没有插入字符到 streambuf 。
- basic_ostream::operator<< 的 streambuf 重载,若函数未插入字符。
- operator>>(std::bitset<>) ,若函数未从输出流释出字符。
- std::getline ,若函数未释出字符,或若它要从输入流释出 basic_string::max_size 个字符。
- basic_istream::operator>> 的数值、指针和布尔输入重载(技术上是它们调用的 num_get::get 的重载),若输入不能分析为合法值,或若分析出的值不适合于目标类型。
- 时间输入操纵符 std::get_time (技术上是其所调用的 time_get::get ),若输入不能按照给定的格式字符串,无歧义地分析为时间值。
- 货币输入操纵符 std::get_money (技术上是其所调用的 money_get::get ),若输入不能按照本地环境规则无歧义地分析为货币值。
- 所有随机数引擎 (RandomNumberEngine) 的释出函数,若遇到错误输入。
- 所有随机数分布 (RandomNumberDistribution) 的释出函数,若遇到错误输入。
- 无格式输入函数 basic_istream::get ,若它们无法释出任何字符。
- basic_istream::getline ,若它未释出字符,若它填充给定的缓冲区而未遇到分隔符,或若提供的缓冲区大小小于 1 。
- basic_istream::read ,若在能释出所有请求的字符前,输入流上出现文件尾条件。
- basic_istream::seekg 在失败时。
- basic_ostream::tellp 在失败时。
- std::basic_fstream 、 std::basic_ifstream 和 std::basic_ofstream 接收文件名参数的构造函数,若无法打开文件。
- basic_fstream::open 、 basic_ifstream::open 和 basic_ofstream::open ,若无法打开文件。
- basic_fstream::close 、 basic_ifstream::close 和 basic_ofstream::close ,若无法关闭文件。
badbit
下列标准库函数设置 badbit :
- basic_ostream::put ,若它因任何原因无法插入元素到输出流。
- basic_ostream::write ,若它因任何原因无法插入元素到输出流。
- 有格式输出函数 operator<< 、 std::put_money 和 std::put_time ,若它们在完成输出前遇到输出流的结尾。
- basic_ios::init ,在以对于
rdbuf()
的空指针调用以初始化流时。 - basic_istream::putback 和 basic_istream::unget ,在以空的
rdbuf()
在流上调用时 - basic_ostream::operator<<(basic_streambuf*) ,传递空指针为参数时。
- basic_istream::putback 和 basic_istream::unget ,若
rdbuf()->sputbackc() 或 rdbuf()->sungetc() 返回 traits::eof() 。
- basic_istream::sync 、 basic_ostream::flush 和
unitbuf
输出流上的每个输出函数,若 rdbuf()->pubsync() 返回 -1 。 - 每个流 I/O 函数,若任何关联流缓冲的成员函数(如 sbumpc() 、 xsputn() 、 sgetc() 、 overflow() 等)抛出异常。
- ios_base::iword 和 ios_base::pword 在失败时(例如无法分配内存)。
寻位方向类型
std::ios_base::seekdir
typedef /*implementation defined*/ seekdir; |
static constexpr seekdir beg = /*implementation defined*/ static constexpr seekdir end = /*implementation defined*/ static constexpr seekdir cur = /*implementation defined*/ |
指定文件寻位方向类型。定义下列常量:
常量 | 解释 |
beg | 流的开始 |
end | 流的结尾 |
cur | 流位置指示器的当前位置 |
指定事件类型
std::ios_base::event
enum event {erase_event, imbue_event, copyfmt_event}; |
指定在特殊事件时传递给 register_callback() 所注册函数的事件类型。定义下列常量:
常量 | 解释 |
erase_event | 在 ~ios_base() 或 basic_ios::copyfmt() (发生成员复制前)时发行 |
imbue_event | 在 imbue() 时发行 |
copyfmt_event | 在 basic_ios::copyfmt() (发生成员复制后,但在复制异常设置前)发行 |
回调函数类型
std::ios_base::event_callback
typedef void (*event_callback)(event type, ios_base& ios, int index); |
能用 register_callback() 注册以在特殊事件时调用的函数回调类型。
type
是 ios_base::event 类型值,指示将调用此回调的事件类型。
ios
指代调用回调所用的流对象: std::ios_base 和 std::basic_ios 的成员函数调用回调时,传递 *this 为参数。
index
是注册函数时传递给 register_callback() 的用户提供值。
相关文章:
c++11 标准模板(STL)(std::ios_base)成员类型与常量
流打开模式类型 std::ios_base::openmode typedef /*implementation defined*/ openmode; static constexpr openmode app /*implementation defined*/ static constexpr openmode binary /*implementation defined*/ static constexpr openmode in /*implementation defi…...
我用 ChatGPT 写 2023 高考语文作文:全国卷(一)
【2023】新高考|卷 “好的故事,可以帮我们更好地表达和沟通,可以触动心灵、启迪智慧:好的故事以改变一个人的命运,可以展现一个民族的形象故事是有力量的。” 以上材料引发了你怎样的联想和思考?请写一篇文章 要求&…...
4.java转义符,javadoc 标签
java常用转义字符 在控制台,输入tab键,可以实现命令补全 (如何解决cmd中Tab键不能自动补充的问题?百度一下) \t : 一个制表符,实现对齐功能\n : 换行符\ \ : 一个\\ " :一个"\ ’ : 一个’\r : 一个回车 …...

PinYin4j库的使用
一、PinYin4j库简介 1、PinYin4j简介 Pinyin4j 是一个流行的 Java 库,支持汉字和大多数流行的拼音系统之间的转换(汉语拼音,罗马拼音等)。可自定义拼音输出格式,功能强大。 官网地址:http://pinyin4j.sou…...

日志框架 --- Logback
文章目录 1. 什么是logback2. logback的日志级别3. 日志级别的层级4. logback配置文件4.1 logger标签4.2 root标签4.3 appender标签4.4 filter标签4.5 encoder标签 5. 整体演示5.1 配置文件5.2 运行结果 1. 什么是logback Logback是一个用于Java应用程序的日志框架,…...

QML 与 Python 交互
在 Qt 中,C 和 QML 交互一般有如下三种方法 上下文属性:setContextProperty( )向引擎注册类型:调用 qmlRegisterType( )QML 扩展插件:虽然有很大的灵活性,但是用 Python 创建 QML 插件比较麻烦,所以这种方法…...

React基础教程(三):JSX语法
React基础教程(三):JSX语法 1、JSX简介 全称:JavaScript XMLreact定义的一种类似于XML的JS扩展语法:JSXML本质是React.createElement(component, props, ...children)方法的语法糖作用:用来简化创建虚拟DOM(注意&…...

软件测试岗位都是女孩子在做吗?
听我一朋友说,测试岗位基本都是女孩子做。” 不知道是不是以前“软件测试岗”给人印象是“不需要太多技术含量”的错觉,从而大部分外行认为从业软件测试的人员中女生应占了大多数。比如有人就觉得:软件测试主要是细心活,所以女生…...

ARP协议,带你了解ARP协议
目录 一、ARP协议概述 二、使用ARP的四种情况 三、ARP缓存 四、ARP的工作原理 1. 地址解析 2. 地址缓存 五、ARP报文格式 1. ARP请求报文格式 2. ARP响应报文格式 六、免费ARP 七、代理ARP 一、ARP协议概述 ARP(Address Resolution Protocol)地…...

基于Java汽车客运站管理系统设计实现(源码+lw+部署文档+讲解等)
博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…...
0203使用规则-索引-MySQL
文章目录 1 联合索引1.1 最左前缀法则1.2 范围查询 2 索引失效2.1 常见情况2.2 数据分布影响 3 SQL提示4 覆盖索引和回表查询5 前缀索引6 单列和联合索引7 设计原则结语 1 联合索引 1.1 最左前缀法则 在Mysql数据库中创建了联合索引(或称复合索引,即包含…...

LVS+Keepalived群集
一、Keepalived概述 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,…...

抖音矩阵系统源代码开发部署--源码搭建
抖音矩阵系统是一个具有强大功能的开放性平台,通过数据挖掘技术能够实现精准的用户画像和个性化推荐,这也是抖音成为国内最受欢迎的短视频平台之一的原因之一。矩阵系统的开发需要大量的技术支持和数据分析,同时也需要综合运用大数据、机器学…...

如何用Jmeter进行接口测试 ,这应该是全网最详细的教程了
一、Jmeter 的使用步骤 打开Jmeter 安装包,进入\bin 中,找到"jmeter.bat", 点击打开即可。 在下图打开的Jmeter 页面中,右键“测试计划” -> “添加” -> "Threads(Users)" -> “线程组”, 建立线…...

C语言---malloc(0)会产生什么结果,真的是空指针吗?
前言 (1)几天前在一个交流群中看到有人说,面试问malloc(0)会怎么样是真的恶心。 (2)这个突然激起了我的好奇心。居然还可以malloc(0)?! (3)经过测试最后,发现…...

建模助手618 | 谁不囤点Revit插件我都会生气!
大家好,这里是建模助手。 早在5月份,我们已经就“618”这个事情高调了一番,以提前放“价”的姿势,让许多用户以躺赢的状态拉开了年中大促的序幕。(5月购买的盆友,切记看完全文,内附彩蛋 活动反…...
【“职场程序员是否会保护自己的隐私?为何要求程序员之间保密薪资?”】
职场程序员之间确实有一些秘密,其中之一便是对薪资保密。这并非完全是程序员们的独立行为,而是因为一些公司或组织规定员工之间不能互相透露薪水信息。 第一个原因是保护公司自身利益。如果一个程序员知道其他同事的薪资水平比自己高,他可能…...

企业工程管理系统源码之提高工程项目管理软件的效率
高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保…...

创新指南 | 推动销售的17个可落地的集客式营销示例
无论您是开启集客式的营销有一段时间还是处于起步阶段,了解像您这样的企业是如何粉碎竞争对手的的集客式策略总是有帮助的。无论您的公司做什么,它所服务的行业,是B2B还是B2C ,您都可以在这里找到许多可以使用的示例。 在本文中&…...

ASEMI代理光宝光耦LTV-0314的应用与优势
编辑-Z 在电子设备的设计和制造过程中,光耦合器是一种至关重要的组件。它们在电路中起到隔离作用,保护电子设备免受电压冲击和电流过载的影响。今天,我们将深入探讨一种特殊的光耦合器——LTV-0314,它的特性、应用以及优势。 一、…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...