当前位置: 首页 > article >正文

C++头文件详解:<iomanip> 头文件使用详解

目录一、前言二、浮点数精度控制2.1 fixed 与 setprecision()1fixed 的作用2setprecision(n) 的作用3示例RGB 转 YUV 计算2.2 scientific 科学计数法三、设置输出宽度与对齐3.1 setw(n)设置字段宽度3.2 left 与 right对齐方式3.3 setfill(c)填充字符四、整数格式控制4.1 hex 与 oct4.2 dec十进制4.3 进制切换示例五、布尔值格式化5.1 boolalpha 与 noboolalpha六、综合示例格式化输出表格七、常用的iomanip 函数一览表八、注意事项九、总结一、前言在 C 程序开发中输出不仅仅是“把值打印出来”更重要的是输出的格式清晰、对齐规范、易于阅读。默认的cout输出浮点数、小数和表格数据时往往不够美观尤其在实验数据、工程调试或论文结果展示中。iomanip头文件就是为了解决这个问题而提供的工具库它包含了控制小数精度、对齐方式、宽度、填充字符、科学计数法输出、十六进制/八进制显示、布尔值格式化等功能。本文将通过完整示例系统介绍iomanip的常用用法及实践场景。二、浮点数精度控制2.1fixed与setprecision()1fixed的作用fixed表示固定小数形式输出不再自动采用科学计数法或简略形式。2setprecision(n)的作用配合fixed使用表示小数点后保留 n 位。不使用fixed表示输出总共保留 n 位有效数字。3示例RGB 转 YUV 计算#include iostream #include iomanip using namespace std; int main() { double R 10, G 5, B 6; double Y, U, V; Y 0.299*R 0.587*G 0.114*B; U -0.14713*R - 0.28886*G 0.436*B 128; V 0.615*R - 0.51498*G - 0.10001*B 128; cout fixed setprecision(4); cout Y Y endl; cout U U endl; cout V V endl; return 0; }输出结果Y 6.6090 U 127.7004 V 130.9750说明cout默认可能只显示127.7使用fixedsetprecision(4)后完整小数位显示出来。2.2scientific科学计数法将浮点数按科学计数法输出。适用于特别大或特别小的数值。double x 1234567.89; cout scientific x endl; // 输出 1.234568e06三、设置输出宽度与对齐3.1setw(n)设置字段宽度指定输出占用 n 个字符宽度。默认右对齐。没有字段位置用空格‘ ’补齐cout setw(10) 123 endl; cout setw(10) 4567 endl;3.2left与right对齐方式cout left setw(10) 123 abc endl; // 左对齐 cout right setw(10) 456 def endl; // 右对齐3.3setfill(c)填充字符设置宽度不足时的填充符。cout setfill(*) setw(10) 25 endl; // 输出 ********25实用场景打印表格、数据对齐或美化控制台界面。四、整数格式控制4.1hex与oct十六进制或八进制输出整数。int a 255; cout hex a endl; // 输出 ff cout oct a endl; // 输出 3774.2dec十进制cout dec a endl; // 输出 2554.3 进制切换示例int num 42; cout 十进制: dec num endl; cout 八进制: oct num endl; cout 十六进制: hex num endl;五、布尔值格式化5.1boolalpha与noboolalphaboolalpha输出true或falsenoboolalpha输出1或0默认bool flag true; cout boolalpha flag endl; // true cout noboolalpha flag endl; // 1六、综合示例格式化输出表格#include iostream #include iomanip using namespace std; int main() { cout fixed setprecision(2); cout left setw(10) 姓名 setw(8) 数学 setw(8) 英语 endl; cout left setw(10) 小明 setw(8) 95.5 setw(8) 88.75 endl; cout left setw(10) 小红 setw(8) 87.0 setw(8) 92.5 endl; return 0; }输出效果姓名 数学 英语 小明 95.50 88.75 小红 87.00 92.50说明通过setw、left和setprecision轻松输出整齐表格。七、常用的iomanip函数一览表函数/操纵符功能实例代码输出结果std::setw(int n)设置字段宽度为下一次输出指定宽度std::cout std::setw(5) 42;42std::setfill(char)设置填充字符默认是空格std::cout std::setfill(*) std::setw(5) 42;***42std::left设置左对齐std::cout std::left std::setw(5) 42;42std::right设置右对齐std::cout std::right std::setw(5) 42;42std::internal符号靠左其余靠右std::cout std::internal std::setw(5) -42;- 42std::setprecision(int)设置浮点数的有效位数std::cout std::setprecision(3) 3.14159;3.14std::fixed设置定点格式输出浮点数std::cout std::fixed std::setprecision(2) 3.14159;3.14std::scientific设置科学计数法格式输出浮点数std::cout std::scientific 3.14159;3.141590e00std::hex设置整数以 16 进制显示std::cout std::hex 42;2astd::oct设置整数以 8 进制显示std::cout std::oct 42;52std::dec设置整数以 10 进制显示默认std::cout std::dec 42;42std::showbase显示进制前缀如0x表示 16 进制std::cout std::showbase std::hex 42;0x2astd::noshowbase隐藏进制前缀默认std::cout std::noshowbase std::hex 42;2astd::uppercase16 进制字母显示为大写std::cout std::uppercase std::hex 42;2Astd::nouppercase16 进制字母显示为小写默认std::cout std::nouppercase std::hex 42;2astd::showpos在正数前显示符号std::cout std::showpos 42;42std::noshowpos不显示正数的符号默认std::cout std::noshowpos 42;42std::boolalpha布尔值以true/false输出std::cout std::boolalpha true;truestd::noboolalpha布尔值以1/0输出默认std::cout std::noboolalpha true;1std::setbase(int n)设置整数的进制支持 8、10、16std::cout std::setbase(16) 42;2astd::resetiosflags重置指定的流状态std::cout std::resetiosflags(std::ios::showbase) std::hex 42;2astd::setiosflags设置指定的流状态std::cout std::setiosflags(std::ios::showbase) std::hex 42;0x2a八、注意事项iomanip必须包含才能使用fixed、setprecision()、setw()、setfill()等工具。fixed与setprecision()一旦设置会持续影响后续浮点输出直到修改。不加fixed时setprecision(n)表示有效数字而不是小数位数。对齐和填充功能可配合浮点数或整数表格输出使控制台结果更专业。九、总结iomanip是 C 输出格式控制的核心工具浮点数输出fixed、setprecision(n)、scientific宽度和对齐setw(n)、left、right、setfill(c)整数进制hex、oct、dec布尔值显示boolalpha、noboolalpha掌握这些工具可以让输出结果更规范、可读性更强适用于调试、实验数据展示和工程开发中任何需要格式化输出的场景。

相关文章:

C++头文件详解:<iomanip> 头文件使用详解

目录 一、前言 二、浮点数精度控制 2.1 fixed 与 setprecision() (1)fixed 的作用 (2)setprecision(n) 的作用 (3)示例:RGB 转 YUV 计算 2.2 scientific 科学计数法 三、设置输出宽度与…...

CP880显示驱动库:车规级TFT-LCD底层控制与零拷贝实现

1. CP880显示驱动库深度解析:面向CARIAD车载信息娱乐系统的TFT-LCD底层控制方案1.1 库定位与工程背景CP880是专为大众集团CARIAD软件平台定制的嵌入式图形显示驱动库,核心目标是为车载信息娱乐系统(IVI)提供高可靠性、低延迟的TFT…...

OpenClaw+SecGPT-14B成本对比:自建模型比SaaS省下80%费用

OpenClawSecGPT-14B成本对比:自建模型比SaaS省下80%费用 1. 为什么我要做这个成本对比实验 去年我开始使用OpenClaw自动化处理日常安全扫描任务时,发现一个令人头疼的问题:每次调用商业安全API的费用高得惊人。作为一个独立安全研究员&…...

OpenClaw压力测试:百川2-13B-4bits连续处理1000个文件的稳定性

OpenClaw压力测试:百川2-13B-4bits连续处理1000个文件的稳定性 1. 测试背景与目标 去年冬天的一个深夜,我正被堆积如山的PDF合同审核工作折磨得焦头烂额。当时突发奇想:如果用AI自动处理这些文件会怎样?这个念头直接促成了本次压…...

JIT启用后CPU飙升200%?PHP 8.9生产环境避坑指南,含8类典型误配置清单

第一章:PHP 8.9 JIT 的核心机制与性能悖论PHP 8.9 并非官方发布的正式版本(截至 PHP 官方最新稳定版为 8.3),该标题中的 “8.9” 是一个假设性技术前瞻设定,用于探讨 JIT 编译器在 PHP 生态中持续演进所引发的底层机制…...

【单片机0.2】

文章目录六个9第一位和第六位亮六个灯亮轮播0-9中间两个灯亮轮播0-9亮灯123456小数点13.14.15六个9 #include<reg52.h> // 头文件// 定义锁存器控制引脚 sbit dulaP3^4; // 锁存器U2&#xff08;段选&#xff09; sbit welaP1^6; // 锁存器U2&#xff08;位选&#xff0…...

作业二6位数码管显示

文章目录1.效果图:显示6个91.代码2.效果图&#xff1a;第1、6位显示72.代码3.效果图&#xff1a;6位0到9轮流显示3.代码4.效果图&#xff1a;中间两位0到9轮流显示4.代码5.效果图&#xff08;显示1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&#xff…...

Keep平台API开发实战指南:从设计理念到生产落地

Keep平台API开发实战指南&#xff1a;从设计理念到生产落地 【免费下载链接】keep The open-source AIOps and alert management platform 项目地址: https://gitcode.com/GitHub_Trending/kee/keep 一、API设计理念&#xff1a;构建灵活的告警管理生态 在现代运维体系…...

账号没有明显违规却突然受限很多时候问题藏在哪些地方

无声的雷区&#xff1a;当你的账号悄然“触线”在数字生活的日常中&#xff0c;或许你曾经历过这样的瞬间&#xff1a;登录熟悉的平台&#xff0c;却收到一条冰冷提示——“账号功能受限”。你反复检查&#xff0c;确信自己没有发布违规内容、没有恶意刷屏、没有触及那些明晃晃…...

AccelStepper:Arduino步进电机精准控制与多轴协同解决方案

AccelStepper&#xff1a;Arduino步进电机精准控制与多轴协同解决方案 【免费下载链接】AccelStepper Fork of AccelStepper 项目地址: https://gitcode.com/gh_mirrors/acc/AccelStepper 在自动化控制领域&#xff0c;步进电机的精准驱动是实现精密运动的核心。AccelSt…...

HarmonyOS-ArkTS-新手完整复现-含环境配置

HarmonyOS ArkTS 新手完整复现&#xff1a;从环境配置到网络列表 App&#xff08;超细步骤&#xff09; 欢迎访问开源鸿蒙 PC 开发者社区&#xff08;https://harmonypc.csdn.net/&#xff09;。 摘要 本文面向零基础/初学者&#xff0c;完整讲清&#xff1a; 如何在 Window…...

MDCL:不换设备,不降功率,电费减少三分之一——发射机技术内核(二)

上一篇讲了固态发射机的模块级效率已经到了90%——硬件层面的省电空间接近极限。但AM调制本身还藏着一个巨大的效率漏洞&#xff1a;载波。 载波的浪费 AM调制有一个教科书级别的效率缺陷&#xff1a;载波本身不携带任何信息。 在标准双边带AM中&#xff0c;所有音频信息都在…...

25套HTML数据可视化大屏模板|覆盖智慧交通、医疗、城市、政务等11大行业应用

温馨提示&#xff1a;文末有联系方式25套行业级HTML可视化大屏源码合集 本提供25套高还原度、响应式设计的HTML数据可视化大屏源码&#xff0c;全部基于纯前端技术&#xff08;HTML/CSS/JS&#xff09;构建&#xff0c;无需后端依赖&#xff0c;可快速部署至各类内网或公有云环…...

OpenClaw定时任务专家:Gemma-3-12b-it自动化日报生成系统

OpenClaw定时任务专家&#xff1a;Gemma-3-12b-it自动化日报生成系统 1. 为什么需要自动化日报系统 作为技术团队的负责人&#xff0c;我每天最头疼的就是收集各成员的日报。传统的做法是让每个人手动填写模板&#xff0c;但执行效果总是不尽如人意——有人忘记提交&#xff…...

阿姆智创15.6寸工业工控触摸一体机,赋能机器视觉与SMT产线场景,源头工厂ODM定制方案

在电子制造高速发展的今天&#xff0c;机器视觉检测与SMT贴片生产线已成为智能制造的重要载体&#xff0c;对工业控制终端的显示精度、运算性能、接口拓展及环境适应性提出了更高要求。阿姆智创15.6寸工业工控触摸一体机&#xff0c;以高清显示、工业级稳定性能、全场景接口配置…...

全球首发 | 「AI智能库」正式官宣,智库智能重新定义仓库!

智库智能 江苏智库智能科技有限公司创立于2017年&#xff0c;是全球托盘仓储机器人领航者&#xff0c;专注于托盘仓储机器人的研发设计和生产交付&#xff0c;拥有机器人本体、业务系统、核心算法、交付系统等全价值链研发能力。公司已推出多款托盘仓储机器人及智能仓储软件…...

2026届最火的六大AI学术平台实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下&#xff0c;各种各样的AI生成内容检测工具越来越广泛地被使用&#xff0c;这给那些依靠…...

资源捕获与媒体解析:猫抓插件效率革命全指南

资源捕获与媒体解析&#xff1a;猫抓插件效率革命全指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容爆炸的时代&#xff0c;我们每天…...

Sketch Measure插件完全指南:如何用设计规范提升团队协作效率

Sketch Measure插件完全指南&#xff1a;如何用设计规范提升团队协作效率 【免费下载链接】sketch-measure Make it a fun to create spec for developers and teammates 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-measure Sketch Measure是一款专为设计师和…...

如何在openKylin 2.0 SP2中安装Qt(v0.2.2)(上)

作者&#xff1a;沈传越&#xff0c;赵文硕 明德融创工作室&#xff08;Minter Fusion Studio, MFS&#xff09; 出品 本文的所有步骤均经过测试复现 如何在openKylin 2.0 SP2中安装Qt&#xff08;v0.2.2&#xff09;&#xff08;下&#xff09; Qt是一款著名的桌面图形化系…...

空项目文档无法生成技术内容

项目标题“mecanum2017_2”未提供有效摘要、关键词及README内容&#xff0c;所有输入字段均为空或无效&#xff08;摘要仅为十六个日文平假名“おぼぼぼぼぼぼぼぼぼぼぼぼぼぼぼ”&#xff0c;无技术含义&#xff1b;关键词为空&#xff1b;README内容为空&#xff09;。 根据…...

Burpsuite之暴力破解+验证码识别 | 添柴不加火始

springboot自动配置 自动配置了大量组件&#xff0c;配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后&#xff0c;springboot会根据类路径上的jar包来自动配置bean&#xff08;比如&#xff1a;springboot发现类路径上的MyBatis相关类&#xff…...

BMS81M001超低功耗震动唤醒模块技术解析

1. BMS81M001 唤醒式震动检测模块深度技术解析1.1 模块定位与工程价值BMS81M001 是由 BEST MODULES CORP 推出的专用低功耗唤醒型震动检测模块&#xff0c;其核心设计目标是解决嵌入式系统中“持续监听机械扰动”带来的能耗瓶颈问题。在工业状态监测、智能穿戴设备、防盗报警系…...

Labelme(5.10.1)标签选择框跑出屏幕的修复

遇到的问题在屏幕边缘标注时&#xff0c;Labelme的标签选择对话框会一半显示在屏幕外&#xff0c;需要手动拖回来&#xff0c;影响效率&#xff0c;如下图所示&#xff1a;解决方法修改Python环境下的Lib\site-packages\labelme\widgets\label_dialog.py文件&#xff0c;路径示…...

C/C++核心语法与嵌入式开发实战解析

1. C/C核心语法深度解析与面试高频考点作为从事嵌入式开发十余年的老手&#xff0c;我见过太多候选人在C/C基础问题上折戟沉沙。本文将系统梳理那些面试官最爱问的核心语法点&#xff0c;结合工业级开发经验&#xff0c;带你掌握真正实用的编程精髓。1.1 const关键字的工程级应…...

OpenClaw多模型混搭方案:Kimi-VL-A3B-Thinking与Qwen3-32B协同工作流

OpenClaw多模型混搭方案&#xff1a;Kimi-VL-A3B-Thinking与Qwen3-32B协同工作流 1. 为什么需要多模型混搭&#xff1f; 去年冬天&#xff0c;当我第一次尝试用OpenClaw处理图文混排的文档时&#xff0c;遇到了一个尴尬的问题&#xff1a;纯文本模型Qwen3-32B对图片内容视而不…...

MCU固件Flash分区设计与优化实践

1. 项目概述在嵌入式系统开发中&#xff0c;MCU固件的Flash划分是一个看似基础却至关重要的环节。作为一名经历过多次"翻车"的嵌入式工程师&#xff0c;我深刻理解合理的Flash分区方案对项目稳定性、可维护性和功能扩展性的影响。今天我们就来聊聊几种常见的Flash划分…...

RP2040上的CBUS协议栈:CAN总线模型铁路通信实现

1. CBUSACAN2040 库深度解析&#xff1a;面向 RP2040 平台的 MERG CBUS 协议栈实现1.1 项目定位与工程价值CBUSACAN2040 是一个专为 Raspberry Pi Pico&#xff08;RP2040&#xff09;系列微控制器设计的嵌入式通信库&#xff0c;其核心使命是将英国模型铁路电子组织 MERG&…...

OpenClaw技能扩展实战:千问3.5-27B驱动公众号自动发布系统

OpenClaw技能扩展实战&#xff1a;千问3.5-27B驱动公众号自动发布系统 1. 为什么需要自动化公众号发布 作为一个技术博主&#xff0c;我每周都要在公众号发布2-3篇技术文章。最让我头疼的不是写作本身&#xff0c;而是发布前的繁琐流程&#xff1a;手动排版Markdown、上传图片…...

C语言的开始

大家好&#xff0c;我是一名智能制造工程专业的大二学生&#xff0c;目前正在系统学习嵌入式开发、C语言、51单片机等相关技术&#xff0c;同时也在为未来的考研和职业发展做准备。在专业学习中&#xff0c;我逐渐发现编程是智能制造领域的核心能力——无论是工业自动化控制、嵌…...