【C++语法】输出的设置 iomanip 与 std::ios 中的流操纵符

文章目录

  • 【C++语法】输出的设置 iomanipstd::ios 中的流操纵符
    • 1. iomanip 中的流操纵方法
      • 1.1 位宽操作类
        • 1.1.1 std::setw(x)
        • 1.1.2 std::setfill(c)
        • 1.1.3 std::left
        • 1.1.4 std::right
        • 1.1.5 std::internal
      • 1.2 小数操作类
        • 1.2.1 std::fixed
        • 1.2.2 std::setprecision(x)
        • 1.2.3 std::scientific
        • 1.2.4 std::showpoint
        • 1.2.5 std::noshowpoint
      • 1.3 整数操作类
        • 1.3.1 std::hex
        • 1.3.2 std::dec
        • 1.3.3 std::oct
        • 1.3.4 std::showbase
        • 1.3.5 std::noshowbase
      • 1.4 布尔值操作类
        • 1.4.1 std::boolalpha
        • 1.4.2 std::noboolalpha
      • 1.5 其他操作类
        • 1.5.1 std::uppercase
        • 1.5.2 std::nouppercase
        • 1.5.3 std::showpos
        • 1.5.4 std::noshowpos
    • 2. std::ios 中的流操纵方法
      • 2.1 格式设置函数
        • 2.1.1 std::resetiosflags(f)
        • 2.1.2 std::setiosflags(f)
      • 2.2 std::ios 的流操纵符

【C++语法】输出的设置 iomanipstd::ios 中的流操纵符

iomanip 是 C++ 标准库中用于格式化输出的头文件,提供了多种流操纵符(Manipulators),用于控制输出的对齐、宽度、精度、填充字符等。同时,这里面还会有 std::ios 中的流操纵符。还有这篇文章将会详细的讲解,希望能够帮上你

1. iomanip 中的流操纵方法

这些是 std 相关的标志位控制函数,可以直接用于 << 像输出字符串一样输出调整格式,但是只会对这一条语句中的内容生效

1.1 位宽操作类

1.1.1 std::setw(x)

std::setw(x) 可以为下一个输出内容设置位宽为 xxx,也就是占用占用 xxx 个字符位,空缺的用某种字符补位。占位符默认为空格,且向右对齐

1.1.2 std::setfill©

std::setfill(c)std::setw(n) 配合,可以设置占位符为 cccccc字符,不是字符串

1.1.3 std::left

std::leftstd::setw(n) 配合,可以设置输出内容为左对齐方式

1.1.4 std::right

std::rightstd::setw(n) 配合,可以设置输出内容为右对齐方式(默认)

1.1.5 std::internal

std::internalstd::setw(n) 配合,表示设置数字为符号左对齐,数字右对齐的方式

1.2 小数操作类

1.2.1 std::fixed

std::fixed 用于固定输出的小数位数,例如 std::cout << std::fixed << 3.14000 输出 3.14000 而不是 3.14

1.2.2 std::setprecision(x)

std::setprecision(x) 表示设置浮点数保留小数点后 xxx 位,通常与 std::fixed 配合

为什么不能单独用 std::setprecision(x)
单独用是语法正确的,但是,在小学数学老师讲四舍五入时讲到过一个误区,4.9994.9994.999 四舍五入保留一位小数应该等于 5.05.05.0 而不是 555。加上 std::fixed 防止去掉小数部分末尾的 000

1.2.3 std::scientific

std::scientific 用于将浮点数以科学计数法形式输出,e 默认小写,想要调成大写 E 可以使用 std::uppercase,默认 std::nouppercase

1.2.4 std::showpoint

std::showpoint 用于强制让所有的数字加上小数点,例如 1 输出为 1.2.72 输出 2.72

1.2.5 std::noshowpoint

std::noshowpoint 用于让所有的数字不强制性地加上小数点,例如 3 输出 3(默认)

1.3 整数操作类

1.3.1 std::hex

std::hex 设置整数以十六进制输出,a ~ f 默认小写,想要切换大写使用 std::uppercase,默认 std::nouppercase

1.3.2 std::dec

std::dec 设置整数以十进制输出(默认)

1.3.3 std::oct

std::oct 设置整数以八进制输出

1.3.4 std::showbase

std::showbase 设置显示进制前缀,例如十六进制数前面加上 0x(或 0X),八进制数前面加上一个 0

1.3.5 std::noshowbase

std::noshowbase 设置不显示进制的前缀(默认)

1.4 布尔值操作类

布尔值是什么?
布尔值(Boolean Value),表示一种条件是否成立,111true 表示成立,000false 表示不成立,只有两个值。这个东西会在下一章的条件语句中提到

1.4.1 std::boolalpha

std::boolalpha 设置布尔值输出 truefalse

1.4.2 std::noboolalpha

std::noboolalpha 设置布尔值输出 10(默认)

1.5 其他操作类

1.5.1 std::uppercase

std::uppercase 设置十六进制字符 A ~ F 大写,设置科学计数法 E 大写

1.5.2 std::nouppercase

std::nouppercase 设置十六进制字符 a ~ f 小写,设置科学计数法 e 小写

1.5.3 std::showpos

std::showpos 使正数显示出 +

1.5.4 std::noshowpos

std::noshowpos 使正数不显示出 +

2. std::ios 中的流操纵方法

这些事 std::ios(或 std::ios_base)相关的流操纵符,使用另外的函数设置格式,可以让多行的 std::cout 使用同一个格式标志,还可以重置、叠加,它们的头文件也是 iomanip

2.1 格式设置函数

2.1.1 std::resetiosflags(f)

将之前的所有格式标志去除,并添加一个 std::ios 流操纵符 f,也就是格式重定义

2.1.2 std::setiosflags(f)

再之前的基础上叠加一个 std::ios 流操纵符 f,也就是格式叠加

2.2 std::ios 的流操纵符

iomanip 流操纵符一样,例如 std::fixedstd::hex,但是,在 std::ios 中,会写成 std::ios::fixedstd::ios::hex 等,在 std 后面加一个 ios

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

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

相关文章

go语言学习笔记-Map

map 是一种无序的基于 key-value 的数据结构&#xff0c;Go 语言中的 map 是引用类型&#xff0c;必须初始化 才能使用。 Go 语言中 map 的定义语法如下map[KeyType]ValueType常见两种创建方法1 使用map初始化var scoreMap make(map[string]int, 8) scoreMap["陈翔"…

芯片安全标准驱动库,筑牢芯片功能安全基石

随着整车控制器功能日益复杂&#xff0c;为满足越发严格的功能安全认证要求&#xff0c;项目开发人员需要采取相应的安全措施对系统中电子元器件的单点故障&#xff08;Singel Point Fault&#xff09;和潜在故障&#xff08;Latent Fault&#xff09;进行检测和管理&#xff0…

rn相关ScrollView

一&#xff1a;ScrollView的style和contentContainerStyle二&#xff1a;flex:1,和flexGrow:1用处内容将纵向空间占满

Spark Core 3.3.2 略讲~

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;大数据、Java、测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/…

智能家居Agent:物联网设备的统一控制与管理

智能家居Agent&#xff1a;物联网设备的统一控制与管理 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般绚烂的技术栈中&#xff0c;我是那个永不停歇的色彩收集者。 &#x1f98b; 每一个优化都是我培育的花朵&#xff0c;每一个特性都是我放飞的…

汉高携手SAP推出AI驱动的退换货与争议管理解决方案

2025年8月12日&#xff0c;SAP宣布与全球知名的胶黏剂、密封剂及消费品制造商汉高&#xff08;Henkel AG & Co. KGaA&#xff09;联合开发了一套基于SAP AI Services的定制化解决方案&#xff0c;用于优化退换货及争议管理流程。该方案旨在通过人工智能自动化索赔相关文件的…

[SC]SystemC中的SC_FORK和SC_JOIN用法详细介绍

SystemC中的SC_FORK和SC_JOIN用法详细介绍 摘要:SystemC是一个开源的C++库(由Accellera和IEEE标准化,IEEE 1666-2011),用于系统级建模、硬件描述和仿真。它扩展了C++以支持硬件概念,如模块(sc_module)、端口(sc_port)、信号(sc_signal)和进程(SC_METHOD、S…

工作流调度(草稿)

串行回复当我加上第三条分支&#xff0c;此时的输出就很混乱了&#xff0c;按理来说最后输出的第二波输出反而先结束了&#xff0c;调用LLM结果的第一波输出最后才输出&#xff0c;这是为什么&#xff1f;当我把LLM节点改为一个不耗时的节点的时候&#xff1a;初步猜测&#xf…

AI不再停留在概念阶段,而是在各行业核心业务场景产生实际价值。随着大模型、边缘计算等技术的突破,AI应用将向实时化、自主化、普惠化方向深度演进。

一、金融领域&#xff1a;智能风控与欺诈检测案例&#xff1a;某银行使用AI实时拦截信用卡欺诈交易&#xff0c;每年减少损失$2400万python# 使用XGBoost构建欺诈检测模型&#xff08;Python&#xff09; import pandas as pd from xgboost import XGBClassifier from sklearn.…

GStreamer中解复用器(Demuxer)

在 GStreamer 中,解复用器(Demuxer) 用于分离容器格式(如 MP4、MKV、AVI 等)中的 视频、音频、字幕等流。不同的容器格式需要不同的 Demuxer 元素。 一、常见的 GStreamer Demuxer 元素 1. MP4 / QuickTime 格式 qtdemux 用于解析 MP4(.mp4)、MOV(.mov) 等基于 Quic…

MySQL 存储过程终止执行的方法

在 MySQL 存储过程&#xff08;PROCEDURE&#xff09;开发中&#xff0c;我们常常遇到这样的需求&#xff1a; 在执行过程中&#xff0c;如果某些条件不满足&#xff0c;就要立即终止剩余逻辑&#xff0c;避免无效或错误的操作。不同于 Java、Python 等编程语言直接 return 退出…

鲲鹏arm服务器安装neo4j社区版,实现图书库自然语言检索基础

我在dify实施中&#xff0c;发现采用自然语言进行数据库检索效果还不错&#xff0c;我就想起来了图数据库的自然语言检索&#xff0c;以前图书库的算法我不熟悉&#xff0c;这次打算采用这种方式完成。我才用但是鲲鹏920&#xff0c;泰山服务器&#xff0c;2280主机&#xff0c…

小八的学习日记 -- 为什么kafka吞吐量大

1. 「顺序读写」—— 像开高速公路一样爽&#xff01;​​​​传统硬盘的痛点&#xff1a;​​ 普通硬盘&#xff08;HDD&#xff09;像在热闹的菜市场找东西&#xff0c;磁头要来回移动&#xff08;寻道&#xff09;&#xff0c;随机读写特别慢。​​Kafka 的妙招&#xff1a;…

5G NTN 卫星测试产品

5G NTN 卫星测试产品非地面网络测试解决方案卫星射频节点测试测量相控阵天线应对卫星基础设施测试挑战适用于 5G NTN 卫星测试的高性能解决方案卫星基础设施测试解决方案的优势5G NTN 卫星测试产品FSW 信号与频谱分析仪R&SSMW200A 矢量信号发生器非地面网络测试解决方案 透…

Redis 内存大页(Transparent Huge Pages, THP)与写时复制(COW)性能全解:原理、源码、调优与架构进阶

Redis 内存大页&#xff08;Transparent Huge Pages, THP&#xff09;与写时复制&#xff08;COW&#xff09;性能全解&#xff1a;原理、源码、调优与架构进阶 Redis 性能瓶颈常见于持久化时 fork 操作的延迟&#xff0c;但系统级“内存大页”&#xff08;THP&#xff09;配置…

爬虫与数据分析入门:从中国大学排名爬取到数据可视化全流程

在数据驱动的时代&#xff0c;掌握爬虫技术获取数据、运用数据分析工具处理数据并通过可视化呈现结果&#xff0c;已成为一项重要技能。本文以 “中国大学排名爬取与分析” 为例&#xff0c;带你走进爬虫与数据分析的世界&#xff0c;了解相关基础知识与实操流程。 一、爬虫基…

剧本杀小程序系统开发:推动行业数字化转型新动力

近年来&#xff0c;剧本杀行业呈现出爆发式增长的态势&#xff0c;线下剧本杀店铺如雨后春笋般涌现&#xff0c;成为年轻人休闲娱乐的热门选择。然而&#xff0c;随着行业的快速发展&#xff0c;也暴露出一些问题&#xff0c;如场地限制、人员组织困难、剧本更新缓慢等。这些问…

多重时间聚合算法(MAPA)改进需求预测模型

这篇文章Improving your forecasts using multiple temporal aggregation介绍了“多重聚合预测算法”&#xff08;MAPA&#xff09;。它指出传统预测常依赖单一数据频率&#xff0c;但MAPA通过将数据聚合到不同时间粒度&#xff08;如日、周、月、年&#xff09;并分别建模&…

【测试】BDD与TDD在软件测试中的对比?

文章目录BDD与TDD在软件测试中的对比与应用引言一、TDD详解&#xff1a;测试驱动开发二、BDD详解&#xff1a;行为驱动开发三、BDD与TDD的对比四、实际项目应用举例结论BDD与TDD在软件测试中的对比与应用 在软件开发领域&#xff0c;测试是确保产品质量的核心环节。作为高级Ja…

SVM实战:从线性可分到高维映射再到实战演练

在支持向量机的分类模型中&#xff0c;我们会遇到两大类模型&#xff0c;一类是线性可分的模型&#xff0c;还有一类是非线性可分的。非线性可分模型是基于线性可分的基础上来处理的。支持向量机比较适合小样本的训练。线性可分如下图所示&#xff0c;有紫色和黑色两类&#xf…