<iomanip>库中setw(),setfill()等函数的使用

#include <iomanip>

#include<iomanip>是C++标准库中的一个头文件,提供了用于输入/输出格式控制的函数和类。它特别适用于调整输出的对齐、填充、精度等格式

setw()

stew,这是一个用于操纵输出格式的函数,用于美化C++程序的输出格式,特别是在表格和对齐输出方面,属于iomanip库的一部分。setw代表“set width”,用于设置输出的宽度,控制输出内容在指定的宽度内对齐。

#include <iostream>
#include <iomanip>
int main() {int i = 7890;std::cout << std::setw(6) << i << std::endl;  
// 输出 " 7890",前面有两个空格以达到总宽度6double d = 12.3456;std::cout << std::setw(8) << std::setprecision(2) << d << std::endl; // 输出 "  12.35",保留两位小数,总宽度8return 0;
}

std::setw(int n)函数设置了接下来输出的宽度为n个字符。如果实际内容不足n个字符,会在前面或后面补充空格以达到设定的宽度,具体对齐方式取决于std::left(左对齐,默认)、std::right(右对齐)或std::internal(内部对齐,主要用于数字前导零)这些操纵符的使用情况。

setfill()

setfill是C++ <iomanip> 库中的一个操纵符,用于指定在使用其他格式控制时(如setw)用于填充的字符,默认情况下填充的字符是空格。这对于对齐输出,特别是数字前面填充零或使用特定字符以达到固定宽度输出时非常有用。setfill函数的基本形式是 std::setfill(char c),其中c是你希望用作填充的字符。

#include <iostream>
#include <iomanip>
int main() {// 输出数字,宽度设置为5,不足部分用0填充std::cout << std::setfill('0') << std::setw(5) << 42 << std::endl;// 输出:"00042"// 输出文本,宽度设置为10,不足部分用*填充std::cout << std::setfill('*') << std::setw(10) << "Hello" << std::endl;// 输出:"*****Hello"   return 0;
}

第一次使用setfill('0')设置了填充字符为0,随后的setw(5)指定了输出宽度为5,因此数字42前面被填充了三个0。第二次使用setfill('*')设置了填充字符为*,并在输出文本时通过setw(10)设置了宽度为10,导致文本Hello两侧被填充了星号以达到总宽度10。

setfill的影响仅作用于紧随其后的输出操作,且通常与setw一起使用以达到预期的格式效果。一旦设置了新的填充字符,它将一直生效直到再次被改变或程序结束,或者使用相应的操纵符重置格式设置。

类似函数

<iomanip>库还提供了许多其他有用的操纵符和函数用于控制输出格式

  1. setprecision: 用于设置浮点数的输出精度。例如,std::setprecision(2)将浮点数的输出限制为两位小数。

  2. fixed: 将浮点数的输出格式设置为固定小数点表示法

  3. scientific: 将浮点数的输出格式设置为科学记数法

  4. hex, oct, dec: 分别用于设置输出的基数为十六进制、八进制、十进制

  5. left, right, internal: 控制对齐方式left使内容左对齐,right使内容右对齐(默认),internal在数值中控制前导填充位置,比如在数字和其前导零之间填充。

  6. boolalpha: 当设置后,truefalse将以文本形式而非数字形式输出

  7. noshowpoint: 禁止在浮点数非零小数部分后显示小数点

  8. showbase: 在输出整数时显示基数前缀(如在十六进制前加0x

  9. uppercase: 将字母转换为大写形式输出,常用于十六进制输出

  10. nouppercase: 禁止转换为大写,恢复默认的小写输出

这些操纵符通常结合使用,可以实现非常精细的输出格式控制。例如,要以十六进制、左对齐、宽度为8并以0填充的方式输出一个整数,可以这样操作:

std::cout << std::hex << std::setfill('0') << std::setw(8) << std::left << 255 << std::endl;

输出000000ff

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

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

相关文章

FreeBSD进入单用户模式拯救崩溃的系统

在FreeBSD系统里总归会遇到手残把系统弄崩的情况&#xff0c;即默认的多用户模式进不去或系统压根就启动到一半办错&#xff0c;或者进入调试模式&#xff0c;这时候可以进单用户模式拯救系统&#xff0c;一般都能救回来。 FreeBSD系统启动后进入单用户模式&#xff0c;先执行 …

华为试题之删除最少字符

题目描述 删除字符串中出现次数最少的字符 如果多个字符出现次数一样则都删除 输入描述 输入只包含小写字母 输出描述 输出删除后剩余的字符 若删除后字符串长度为0&#xff0c;则输出empty 我的思路是将字符串中的字符对应的数量和key统计后放到对应的字典中&#xff0c; 对字…

独家专访辉羲智能章健勇:数据闭环定义芯片,帮车厂造中国版FSD

‍采访、编辑 |德新 撰文 |苗岭 辉羲智能&#xff0c;智能驾驶芯片行业最新的进入者。 这家公司成立于2022年&#xff0c;今年辉羲即将发布它的首款高阶智驾芯片。而另外两家智驾计算平台的头部公司地平线和黑芝麻已经在前不久分别向港交所提交了IPO申请。 国内的自动驾驶行…

【问题记录】Windows命令行中执行.exe文件路径有空格的解决方法

Windows命令行中执行.exe文件路径有空格的解决方法 一&#xff0c;问题现象&#xff1a;二&#xff0c;问题原因三&#xff0c;解决方法 一&#xff0c;问题现象&#xff1a; 在Windows命令行中执行路径中带空格的.exe文件&#xff1a; 会报错&#xff1a; 二&#xff0c;问…

数据库系统理论——关系数据库

文章目录 一、关系&#xff08;数据结构&#xff09;1、概述2、名词解释3、关系模式、关系数据库、关系数据库模式4、基本关系的性质 二、关系操作&#xff08;数据操作&#xff09;三、关系的完整性1、实体完整性2 、参照完整性3、用户自定义的完整性 四、关系代数五、习题 前…

vue中 this.$set 的作用

向响应式对象中添加一个属性&#xff0c;并确保这个新属性同样是响应式的&#xff0c;且触发视图更新 在 Vue.js 中&#xff0c;this.$set 是一个实例方法&#xff0c;用于向响应式对象中添加一个属性&#xff0c;并确保这个新属性同样是响应式的&#xff0c;且触发视图更新。…

日期函数之计算两个日期之间的天数差

开篇 本体来源为《编程珠玑》第3章课后习题4的第一问。 问题概要 给定两个日期&#xff0c;计算两者之间的天数。 思路分析 以2022年1月22号和2024年2月3号为例&#xff1a; 首先根据年月日确定2022年1月22号是2022年的第22天&#xff0c;距离2023年还差(365 - 22 341)天&…

Qwen大模型实践之初体验

Qwen大模型实践之初体验 测试机器, 使用InternStudio提供的开发机&#xff0c;配置如下&#xff1a; 部分资源详细信息&#xff1a; # CPUIntel(R) Xeon(R) Platinum 8369B CPU 2.90GHz# GPU(base) rootintern-studio-50014188:~# studio-smi Running studio-smi by vgpu-smiW…

有什么快速ai智能生成思维导图的软件?6个软件教你轻松制作思维导图

有什么快速ai智能生成思维导图的软件&#xff1f;6个软件教你轻松制作思维导图 思维导图是一种图形化的工具&#xff0c;用于组织和表示思维过程中的概念和想法之间的关系。在现代的工作和学习环境中&#xff0c;快速制作思维导图对于理清思路、规划项目、记录笔记等方面都非常…

如何设置cPanel的自动备份

近期我们购买了Hostease美国VPS云主机产品&#xff0c;由于需要设置服务器的自动备份&#xff0c;我们向Hostease技术团队进行了咨询&#xff0c;他们提到VPS云主机的cPanel面板包含自动备份功能&#xff0c;下面我们就介绍如何进行自动备份的设置。 首先你需要登录到WHM面板&…

从封号之痛出发:探索自养号测评,助力eBay卖家破局重生

在跨境电商的浪潮中&#xff0c;eBay作为知名的电商平台&#xff0c;吸引了众多卖家前来拓展业务。然而&#xff0c;近年来不少卖家反映&#xff0c;因环境问题导致eBay账号被封号&#xff0c;成为他们业务发展的痛点。为此&#xff0c;本文将探讨如何通过自养号测评&#xff0…

不止于量子!“光与热”两大架构重塑计算前沿

在探索超越传统计算机性能的途径中&#xff0c;量子计算通常被视为一种前沿技术。然而&#xff0c;它并非解决所有计算挑战的唯一方案。事实上&#xff0c;最近有两家公司推出了基于独特物理原理的计算设备&#xff0c;这些设备专门针对特定应用设计&#xff0c;据称在处理特定…

Java 函数式接口BiConsumer

BiConsumer是一个函数式接口&#xff0c;代表一个接受两个输入参数且不返回任何内容的操作符 import java.util.ArrayList; import java.util.List; import java.util.function.BiConsumer;public class BatchOperate<T> {private int batchSize3000;private List<T&…

uniapp + vue3 使用axios

场景 uniapp自带的uni.request不太好用&#xff0c;也有可能是自己用axios用的太熟悉了&#xff0c;所以还是用axios趁手点&#xff0c;所以尝试在uniapp中使用axios。 操作 因为uniapp项目没有package.json&#xff0c;所以先在项目根目录下执行 npm init, 执行完毕后直接…

如何vscode中刷力扣

推荐你阅读 互联网大厂万字专题总结 Redis总结 JUC总结 操作系统总结 JVM总结 Mysql总结 微服务总结 互联网大厂常考知识点 什么是系统调用 CPU底层锁指令有哪些 AQS与ReentrantLock原理 旁路策略缓存一致性 Java通配符看这一篇就够 Java自限定泛型 技术分享 如何vscode中刷力扣…

登录校验总览-jwt令牌

一、前置问题 为什么要登录校验&#xff1f;登录校验&#xff0c;就是判断访问资源的用户是否是合法用户&#xff0c;保障安全。如果不设置登录校验&#xff0c;就可以跳过登录&#xff0c;直接通过url访问资源。二、登录校验实现思路&#xff1a; 在服务器端对请求进行统一拦…

Sarcasm detection论文解析 |CAT-BiGRU

论文地址 论文地址&#xff1a;CAT-BiGRU: Convolution and Attention with Bi-Directional Gated Recurrent Unit for Self-Deprecating Sarcasm Detection | Cognitive Computation github:Ashraf-Kamal/Self-Deprecating-Sarcasm-Detection (github.com) 论文首页 笔记框架 …

NVIDIA: RULER新测量方法让大模型现形

1 引言 最近在人工智能系统工程和语言模型设计方面的进展已经实现了语言模型上下文长度的高效扩展。以前的工作通常采用合成任务,如密钥检索和大海捞针来评估长上下文语言模型(LMs)。然而,这些评估在不同工作中使用不一致,仅揭示了检索能力,无法衡量其他形式的长上下文理解。 …

如何提高日语听力?日语学习日语培训柯桥小语种学校

每次一说起练日语听力&#xff0c;总离不开一个词&#xff0c;那就是“磨耳朵”。 可是&#xff0c;“磨耳朵”真的有用吗&#xff1f; 在讨论这个问题之前&#xff0c;我们需要先知道&#xff1a;什么是“磨耳朵”&#xff1f; 所谓的“磨耳朵”&#xff0c;其实就是让我们的耳…

【鸿蒙自定义组件的生命周期】

鸿蒙自定义组件的生命周期 自定义组件的生命周期回调函数用于通知用户该自定义组件的生命周期&#xff0c;这些回调函数是私有的&#xff0c;在运行时由开发框架在特定的时间进行调用&#xff0c;不能从应用程序中手动调用这些回调函数。 说明 本模块首批接口从API version 7开…