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,它的特性、应用以及优势。 一、…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
