C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed
目录
四种操纵符简要介绍
setprecision基本用法
setfill的基本用法
fixed的基本用法
setw基本用法
以下是一些常见的用法和示例:
1. 设置字段宽度和填充字符
2. 设置字段宽度和对齐方式
3. 设置字段宽度和精度
4. 设置字段宽度和填充字符,结合对齐方式
5. 设置字段宽度和填充字符,结合对齐方式和精度
总结
收藏加关注,观看不迷路
四种操纵符简要介绍
setw 是 C++ 中用于控制输出格式的操纵符,它用于设置输出字段的宽度,默认右对齐。当输出值的字符数少于指定的字段宽度时,剩余的部分默认用空格填充,或其他指定的填充字符填充。setw 的作用是确保输出值占据指定的宽度,从而实现对齐和格式化输出。
setfill 是 C++ 中用于控制输出格式的操纵符,它用于设置填充字符。当输出字段的宽度大于实际输出值的字符数时,setfill 指定的字符将用来填充剩余的空间,常与setw结合使用。默认的填充字符是空格。
setprecision 是 C++ 中用于控制浮点数输出精度的操纵符。它通常与 iostream 库一起使用,用于设置浮点数输出时小数点后的位数。setprecision 的作用是设置后续浮点数输出的精度,直到下一次改变精度为止。
fixed 是 C++ 中用于设置浮点数输出格式的操纵符。它用于指定浮点数以固定小数点格式输出,而不是科学计数法格式。fixed 通常与 setprecision 一起使用,以控制小数点后的位数。
setprecision基本用法
#include<iostream> #include<iomanip> // 包含用于控制输出格式的头文件 using namespace std;int main() {double num = 123.456789;// 设置精度为3位小数cout << setprecision(3) << num << endl;// 设置精度为5位小数cout << setprecision(5) << num << endl;return 0; }输出
123.457 123.45679详细解释
setprecision(n):
设置浮点数输出时小数点后的位数为
n。
n是一个整数,表示小数点后的位数。精度设置的范围:
setprecision设置的精度范围包括小数点后的所有数字,但不包括小数点前的数字。四舍五入:
当设置的精度小于实际小数位数时,
setprecision会自动进行四舍五入。默认精度:
如果不使用
setprecision,默认的精度通常是6位小数
setfill的基本用法
#include<iostream> #include<iomanip> // 包含用于控制输出格式的头文件 using namespace std;int main() {int a = 1, b = 123, c = 4567;// 设置字段宽度为10,填充字符为'*'cout << setw(10) << setfill('*') << a << endl;cout << setw(10) << setfill('*') << b << endl;cout << setw(10) << setfill('*') << c << endl;return 0; }输出
*********1 *******123 ******4567详细解释
setfill(char):
设置填充字符为指定的字符
char。例如,
setfill('*')将填充字符设置为*。
setw(int):
设置输出字段的宽度为指定的整数
int。例如,
setw(10)将输出字段的宽度设置为 10 个字符。填充字符的作用:
当实际输出值的字符数少于指定的字段宽度时,剩余的部分将用填充字符填充。
默认的填充字符是空格,但可以通过
setfill改变。
fixed的基本用法
#include<iostream> #include<iomanip> // 包含用于控制输出格式的头文件 using namespace std;int main() {double num = 123.456789;// 设置浮点数以固定小数点格式输出,精度为3位小数cout << fixed << setprecision(3) << num << endl;// 设置浮点数以固定小数点格式输出,精度为5位小数cout << fixed << setprecision(5) << num << endl;return 0; }输出
123.457 123.45679详细解释
fixed:
设置浮点数以固定小数点格式输出。
在固定小数点格式下,浮点数的小数部分会显示指定的位数,不足的部分会用零填充。
setprecision(n):
设置浮点数输出时小数点后的位数为
n。
n是一个整数,表示小数点后的位数。四舍五入:
当设置的精度小于实际小数位数时,
setprecision会自动进行四舍五入。默认格式:
如果不使用
fixed或scientific,浮点数的输出格式默认是科学计数法。
setw基本用法
#include<iostream> #include<iomanip> // 包含用于控制输出格式的头文件 using namespace std;int main() {int a = 1, b = 123, c = 4567;// 设置字段宽度为10cout << setw(10) << a << endl;cout << setw(10) << b << endl;cout << setw(10) << c << endl;return 0; }输出
11234567详细解释
setw(int):
设置输出字段的宽度为指定的整数
int。例如,
setw(10)将输出字段的宽度设置为 10 个字符。字段宽度的作用:
当实际输出值的字符数少于指定的字段宽度时,剩余的部分将用空格填充。
默认的填充字符是空格,但可以通过
setfill改变。对齐方式:
默认情况下,输出值是右对齐的。
可以通过
left或right操纵符改变对齐方式。
以下是一些常见的用法和示例:
1. 设置字段宽度和填充字符
#include<iostream> #include<iomanip> using namespace std;int main() {int a = 1, b = 123, c = 4567;// 设置字段宽度为10,填充字符为'*'cout << setw(10) << setfill('*') << a << endl;cout << setw(10) << setfill('*') << b << endl;cout << setw(10) << setfill('*') << c << endl;return 0; }输出
*********1 *******123 ******45672. 设置字段宽度和对齐方式
#include<iostream> #include<iomanip> using namespace std;int main() {int a = 1, b = 123, c = 4567;// 设置字段宽度为10,右对齐cout << setw(10) << right << a << endl;cout << setw(10) << right << b << endl;cout << setw(10) << right << c << endl;// 设置字段宽度为10,左对齐cout << setw(10) << left << a << endl;cout << setw(10) << left << b << endl;cout << setw(10) << left << c << endl;return 0; }输出
11234567 1 123 45673. 设置字段宽度和精度
#include<iostream> #include<iomanip> using namespace std;int main() {double a = 1.23456, b = 123.456, c = 4567.89;// 设置字段宽度为10,精度为2位小数cout << setw(10) << setprecision(2) << fixed << a << endl;cout << setw(10) << setprecision(2) << fixed << b << endl;cout << setw(10) << setprecision(2) << fixed << c << endl;return 0; }输出
1.23123.464567.894. 设置字段宽度和填充字符,结合对齐方式
#include<iostream> #include<iomanip> using namespace std;int main() {int a = 1, b = 123, c = 4567;// 设置字段宽度为10,填充字符为'*',右对齐cout << setw(10) << setfill('*') << right << a << endl;cout << setw(10) << setfill('*') << right << b << endl;cout << setw(10) << setfill('*') << right << c << endl;// 设置字段宽度为10,填充字符为'*',左对齐cout << setw(10) << setfill('*') << left << a << endl;cout << setw(10) << setfill('*') << left << b << endl;cout << setw(10) << setfill('*') << left << c << endl;return 0; }输出
*********1 *******123 ******4567 1********* 123******* 4567******5. 设置字段宽度和填充字符,结合对齐方式和精度
#include<iostream> #include<iomanip> using namespace std;int main() {double a = 1.23456, b = 123.456, c = 4567.89;// 设置字段宽度为10,填充字符为'*',右对齐,精度为2位小数cout << setw(10) << setfill('*') << right << setprecision(2) << fixed << a << endl;cout << setw(10) << setfill('*') << right << setprecision(2) << fixed << b << endl;cout << setw(10) << setfill('*') << right << setprecision(2) << fixed << c << endl;// 设置字段宽度为10,填充字符为'*',左对齐,精度为2位小数cout << setw(10) << setfill('*') << left << setprecision(2) << fixed << a << endl;cout << setw(10) << setfill('*') << left << setprecision(2) << fixed << b << endl;cout << setw(10) << setfill('*') << left << setprecision(2) << fixed << c << endl;return 0; }输出
********1.23 ******123.46 *****4567.89 1.23******** 123.46****** 4567.89*****
总结
setfill(char): ◦ 设置填充字符为指定的字符 char。
setw(int): ◦ 设置输出字段的宽度为指定的整数 int。
right:设置右对齐。
left:设置左对齐。
setprecision(int):设置浮点数的精度为指定的整数int。
fixed:设置浮点数以固定小数点格式输出。这些操纵符可以组合使用,以实现各种复杂的输出格式,仅适用cout输出,若用C语言风格printf输出,无需上述操纵符。

收藏加关注,观看不迷路
相关文章:
C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed
目录 四种操纵符简要介绍 setprecision基本用法 setfill的基本用法 fixed的基本用法 setw基本用法 以下是一些常见的用法和示例: 1. 设置字段宽度和填充字符 2. 设置字段宽度和对齐方式 3. 设置字段宽度和精度 4. 设置字段宽度和填充字符,结合…...
C++ ——— 学习并使用 priority_queue 类
目录 何为 priority_queue 类 学习并使用 priority_queue 类 实例化一个 priority_queue 类对象 插入数据 遍历堆(默认是大堆) 通过改变实例化的模板参数修改为小堆 何为 priority_queue 类 priority_queue 类为 优先级队列,其本质就是…...
基础项目实战——3D赛车(c++)
目录 前言一、渲染引擎二、关闭事件三、梯形绘制四、轨道绘制五、边缘绘制六、草坪绘制七、前后移动八、左右移动九、曲线轨道十、课山坡轨道十一、循环轨道十二、背景展示十三、引入速度十四、物品绘制十五、课数字路障十六、分数展示十七、重新生成十八、…...
ODP(OBProxy)路由初探
OBProxy路由策略 Primary Zone 路由 官方声明默认情况,会将租户请求发送到租户的 primary zone 所在的机器上,通过 Primary Zone 路由可以尽量发往主副本,方便快速寻找 Leader 副本。另外,设置primary zone 也会在一定成都上减少…...
从零推导线性回归:最小二乘法与梯度下降的数学原理
欢迎来到我的主页:【Echo-Nie】 本篇文章收录于专栏【机器学习】 本文所有内容相关代码都可在以下仓库中找到: Github-MachineLearning 1 线性回归 1.1 什么是线性回归 线性回归是一种用来预测和分析数据之间关系的工具。它的核心思想是找到一条直…...
计算机网络__基础知识问答
Question: 1)在计算机网络的5层结构中,每一层的功能大概是什么? 2)交换机的功能?https://www.bilibili.com/video/BV1na4y1L7Ev 3)路由器的功能?https://www.bilibili.com/video/BV1hv411k7n…...
第 5 章:声音与音乐系统
5.1 声音效果的应用 在游戏中,声音效果是增强游戏沉浸感和趣味性的重要元素。Pygame 提供了强大的音频处理功能,使得添加各种声音效果变得相对简单。声音效果可以包括角色的动作音效,如跳跃、攻击、受伤时的声音;环境音效&#x…...
C语言编译过程全面解析
今天是2025年1月26日,农历腊月二十七,一个距离新春佳节仅一步之遥的日子。城市的喧嚣中,年味已悄然弥漫——能在这个时候坚持上班的人,真可称为“牛人”了吧,哈哈。。。。 此刻,我在重新审视那些曾被遗忘的…...
算法每日双题精讲 —— 前缀和(【模板】一维前缀和,【模板】二维前缀和)
在算法竞赛与日常编程中,前缀和是一种极为实用的预处理技巧,能显著提升处理区间和问题的效率。今天,我们就来深入剖析一维前缀和与二维前缀和这两个经典模板。 一、【模板】一维前缀和 题目描述 给定一个长度为 n n n 的整数数组 a a a&…...
Maui学习笔记- SQLite简单使用案例02添加详情页
我们继续上一个案例,实现一个可以修改当前用户信息功能。 当用户点击某个信息时,跳转到信息详情页,然后可以点击编辑按钮导航到编辑页面。 创建项目 我们首先在ViewModels目录下创建UserDetailViewModel。 实现从详情信息页面导航到编辑页面…...
VMware 中Ubuntu无网络连接/无网络标识解决方法【已解决】
参考文档 Ubuntu无网络连接/无网络标识解决方法_ubuntu没网-CSDN博客 再我们正常使用VMware时,就以Ubuntu举例可能有时候出现无网络连接,甚至出现无网络标识的情况,那么废话不多说直接上教程 环境:无网络 解决方案&#…...
完美世界前端面试题及参考答案
如何设置事件捕获和事件冒泡? 在 JavaScript 中,可以通过addEventListener方法来设置事件捕获和事件冒泡。该方法接收三个参数,第一个参数是事件类型,如click、mousedown等;第二个参数是事件处理函数;第三个参数是一个布尔值,用于指定是否使用事件捕获机制。当这个布尔值…...
新时代架构SpringBoot+Vue的理解(含axios/ajax)
文章目录 引言SpringBootThymeleafVueSpringBootSpringBootVue(前端)axios/ajaxVue作用响应式动态绑定单页面应用SPA前端路由 前端路由URL和后端API URL的区别前端路由的数据从哪里来的 Vue和只用三件套axios区别 引言 我是一个喜欢知其然又知其所以然的…...
代理模式 -- 学习笔记
代理模式学习笔记 什么是代理? 代理是一种设计模式,用户可以通过代理操作,而真正去进行处理的是我们的目标对象,代理可以在方法增强(如:记录日志,添加事务,监控等) 拿一…...
gif动画图像优化,相同的图在第2,4,6帧中重复出现,会增加图像体积吗?
对于 GIF 图像,情况与 Git 文件存储有所不同。GIF 是一种图像格式,其体积主要取决于图像的内容、颜色数量、优化设置等因素。如果在 GIF 动画中,相同的图像在第 2、4、6 帧中重复出现,是否会增加图像体积,取决于以下几…...
Harmony Next 跨平台开发入门
ArkUI-X 官方介绍 官方文档:https://gitee.com/arkui-x/docs/tree/master/zh-cn ArkUI跨平台框架(ArkUI-X)进一步将ArkUI开发框架扩展到了多个OS平台:目前支持OpenHarmony、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码…...
阿里巴巴Qwen团队发布AI模型,可操控PC和手机
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
android 音视频系列引导
音视频这块的知识点自己工作中有用到,一直没有好好做一个总结,原因有客观和主观的。 客观是工作太忙,没有成段时间做总结。 主观自己懒。 趁着这次主动离职拿了n1的钱,休息一下,对自己的人生做一下总结,…...
STM32调试手段:重定向printf串口
引言 C语言中经常使用printf来输出调试信息,打印到屏幕。由于在单片机中没有屏幕,但是我们可以重定向printf,把数据打印到串口,从而在电脑端接收调试信息。这是除了debug外,另外一个非常有效的调试手段。 一、什么是pr…...
基于 Jenkins 的测试报告获取与处理并写入 Jira Wiki 的技术总结
title: 基于 Jenkins 的测试报告获取与处理并写入 Jira Wiki 的技术总结 tags: - jenkins - python categories: - jenkins在软件开发的持续集成与持续交付(CI/CD)流程里,及时、准确地获取并分析测试报告对保障软件质量至关重要。本文将详细…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
