cout 格式化输出

【C++】格式化输出详解:掌握 cout 的进阶用法 在编写 C++ 程序时,cout 是我们用来输出信息的基础工具。然而,仅仅使用 cout 进行简单的输出往往难以满足复杂应用场景的需求。我们需要深入掌握各种格式化输出的技巧,以便更精确地控制输出,适应各类场合的需求。在本文中,我们将系统性地探讨如何使用 C++ 提供的 头文件及相关操纵符来灵活控制输出格式,包括对齐方式、数值表示方式、宽度管理等方面,帮助你更好地呈现数据,使代码输出更加规范和具有可读性。 2024.12.5-✍39min 阅读详情

cout 格式化输出


将 cout 的 flag 保存到变量
, 以便修改后的恢复

ostream::fmtflags old = cout.flag() ; // 无参将返回当前flag 值
cout.flag(old) ; // 恢复到原先保存的值


将 bool 值以 literals 输出

cout << " numeric: " << true << " or " << false << endl; // 1 or 0
cout << " literals: " << boolalpha << true << " or " << false << endl; // true or false
cout << " literals: " << boolalpha << 0 << endl; // 0 原因: 0 在cout中不等价于 false

一旦我们使用 boolalpha 将改变 cout 对 bool 值的输出格式. 此后的 cout 都会将 bool 输出为literals.


将 bool 值以 numeric 输出

cout << " numeric: " << noboolalpha << true << " or " << false << endl; // 1 or 0

从此以后, cout 对 bool 值的输出将恢复 numeric 格式


指定 Integral Values 的 Base

const int ival = 17 ; // 'ival' isconstant, so value never change
cout << " oct: " << oct << ival << endl; // 21 : 8 进制
cout << " dec: " << dec << ival << endl; // 17 : 10 进制
cout << " hex: " << hex << ival << endl; // 11 : 16 进制
cout << " hex: " << hex << 17.01 << endl; // 17.01 : 不受影响
如 boolalpha 一样, oct, dec, hex 也是 persistent. 一旦改变, 将影响后续的输出格式.


显示表明 Integer Values 的 Base

cout << showbase; // Show base when printing integralvalues
cout << " oct: " << oct << ival << endl; // 21 : 8 进制
cout << " dec: " << dec << ival << endl; // 017 : 10 进制
cout << " hex: " << hex << ival << endl; // 0x11 : 16 进制
cout << " hex: " << hex << 17.01 << endl; // 17.01 : 不受影响
cout << noshowbase; // Reset state of the stream

若想改变16进制字母的大小, 可以结合uppercase/nouppercase

cout << showbase << uppercase;
cout
<< " hex: " << hex << 15 << endl; // 0XF 大写形式
cout << nouppercase;
cout
<< " hex: " << hex << 15 << endl; // 0xf 小写形式

showbase 与 noshowbase 的作用周期也是 persistent


对于 float/double 型, 有三种格式化控制

一: 输出精度 precision : by default is 6pricision
    控制了至多一共会输出多少个数字. 
    当要输出的数字多余指定的值时, 将发生四舍五入(rounded); 
    当要输出的数字少于指定的值时,则实际输出的数字个数将少于指定值.
// cout.pricision(4) ; // 等价于 cout<<setprecision(4);
cout << setprecision( 4 ) << 12.345678 << endl; // 12.35 rounded!
cout << setprecision( 10 ) << 12.345678 << endl; // 12.345678 其实内部发生了 rounded, 而结果正好进位,与原值相同
cout << cout.precision() << endl; // 输出当前精度
  二: 表现形式 notation : 'very large and very small values are printed usingscientific notation. other values usefixeddecimal.'
    notation 控制了输出的形式 : 科学计数法(scientific) 和定点小数(fixed)
float f = 101 / 6.0 ;
cout
<< fixed << f << endl; // 16.83334 : 小数点后共6位
cout << scientific << f << endl; // 1.683333e+001 : 小数点后共6位
  恢复到初始状态
cout.unsetf(ostream::floatfield); // Retrieve to default handling fornotation
cout << f << endl; // 16.8333 : 所有数字共6位
  三: 输出十进制浮点 'Bydefault, when the fractional part of a floating-point value is 0,the decimal point is not displayed. Theshowpointmanipulator forces the decimal point ot be printed.'
cout << 10.0 << endl; // 10
cout << showpoint << 10.0 << endl; // 10.0000
cout << noshowpoint << endl; // Revert to default handling of decimal  


输出填充
Padding the Output

  setw to specify the minimum space for the next numeric or string value.
cout <<setw(10)<<12.3<<endl;// ______12.3
cout <<setw(10)<<12<<3<<endl;// ________123

cout
<<setw(3)<<12.345<<endl;// If the total output is more than3, it can be extended
  cout <wbr>格式化输出
  left to left-justify theoutput.
cout <<left;// left-justify
cout <<setw(5)<<12<<setw(5)<<34<<endl;// 12___34___
  cout <wbr>格式化输出
   right toright-justify the output. Output is right-justified budefault.
cout <<right;// By default
cout <<setw(5)<<12<<setw(5)<<34<<endl;// 12___34___
  cout <wbr>格式化输出
  internal controls placement ofthe sign on negative value.internal left-justifies the signand right-justifies the value, padding any intervening space withblanks.(ifsetfill notset) 
cout <<internal;// Bydefault
cout <<setw(5)<<-12<<endl;// 12___34___
cout <wbr>格式化输出 
   setfill letsus specify an alternative character to use when padding the output.By default, the value is a space.
cout <<setfill('*');// By default
cout <<setw(5)<<12<<endl;// 12___34___
cout <wbr>格式化输出 

Header Files

 
  ManipulatorsDefined in < iomanip>
setfill(charch)Fill whitespace with 'ch'
setprecision(
intn) Set floating-pointprecision to'n'
setw(
int w) Read or write value to'w'characters
setbase(
intb) Output integersinbase 'b'(only'b'is8/10/16could the functionwork)
 

基于STM32设计的心率脉搏测量仪(项目资料ID:9) 本设计基于STM32F103单片机开发了一款便携式心率脉搏测量仪,通过光电传感器采集脉搏信号,经放大(约1200倍)、滤波(低通及四阶低通滤波)、比较及偏置电压调理后,由STM32进行ADC采样与数据处理。硬件采用Altium Designer设计,包含信号调理电路(限定心率范围43.4-800次/分钟)及电源管理模块;软件基于STM32CubeMX开发,利用队列存储和时间间隔平均算法优化精度,实现多终端显示(OLED实时心率/动画、MATLAB波形分析、蓝牙传输至手机)。系统支持自动启停(检测脉搏启 阅读详情

相关推荐

概率论与数理统计基础概念与重要定义汇总

文章目录一、随机事件和概率1:互斥,对立,独立事件的定义和性质。2:概率,条件概率和五大概率公式3:古典型,几何型概率和伯努利试验 一、随机事件和概率 1:互斥,对立,独立事件的定义和性质。 互斥事件\color{red}\textbf{互斥事件}互斥事件 事件A和B的交集为空,A与B就是互斥事件,也叫互不相容事件。也可叙述为:不可能同时发生的事件。如A∩B为不可能事件(A∩B=Φ),那么称事件A与事件B互斥,其含义是:事件A与事件B在任何一次试验中不会同时发生。 则P(A+B)=P(A)+P(B)(这个公

csyifanZhang的博客 1万+

关于cout<<hex原理分析

c++ primer plus提到,hex是一个函数,hex(cout)效果

5499

深入GSConv代码:逐行解析这个混合了标准卷积与深度可分离卷积的‘新算子’

本文深入解析GSConv代码,详细介绍了这个混合标准卷积与深度可分离卷积的‘新算子’的设计哲学与实现框架。通过PyTorch代码逐行分析,揭示GSConv如何在轻量级卷积神经网络中平衡计算效率与特征表达能力,特别适用于Slim-Neck架构,显著降低计算量同时保持高精度。

weixin_29860267的博客 322

cout格式化输出

cout格式化输出

jianmo的博客 2557

TI AWR2944毫米波雷达开发板开箱:用官方Demo快速上手3D点云与热图生成

本文详细介绍了TI AWR2944毫米波雷达开发板的开箱与实战应用,包括硬件准备、软件开发环境搭建、Demo固件刷写与配置、实时可视化与数据解析等全流程指南。通过官方Demo快速上手3D点云与热图生成,帮助开发者高效掌握毫米波雷达技术在工业检测、智能交通等领域的应用。

weixin_42627853的博客 309

Ubuntu22环境下Xinference与RAGFLOW集成:构建高效rerank模型服务【实战指南】

本文详细介绍了在Ubuntu22.04系统上,通过部署Xinference模型推理服务来加载bge-reranker-base等rerank模型,并将其与RAGFLOW框架集成的完整实战指南。该方案实现了模型服务的解耦与灵活管理,有效提升RAG系统的检索精度与答案相关性,并提供了从环境配置、服务启动、网络连接到性能调优及常见问题排查的全流程解决方案。

pluto的博客 501

【C++】输入输出流 ⑧ ( cout 输出格式控制 | 设置进制格式 - dex、hex、oct | 指定输出宽度 / 填充 - setw / setfill | 指定浮点数格式 )

一、cout 输出格式控制 1、cout 输出格式控制的两种方式 2、格式化输出 控制符 二、指定输出进制 - dex、hex、oct 1、cout 输出进制设置 2、代码示例 - cout 输出进制设置 3、显示进制前缀 - showbase 4、使用 setbase() 指定进制 三、指定输出宽度 / 填充 - setw / setfill 1、cout 指定输出宽度 / 填充 2、代码示例 - cout 指定输出宽度 / 填充 四、指定浮点数格式 - setprecision / setiosflag

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1万+

那些年对支付宝的研究[整理]

支付宝功能强大.他内部各个功能间的跳转是通过Uri 实现的.而使用window.location.href 即可.跟浏览器一样的协议.很方便 H5启动支付宝: alipays://platformapi/startapp?appId=20000067&url=网址 alipays://platformapi/startapp?appId=20000691&url=网址 ali...

技术专研 8919

C++的cout高阶格式化操作

(敬告:当您的浏览器以非默认字体浏览本文时,段落格式可能会出现偏差) 这篇文章主要讲解如何在C++中使用cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等。通过本文,您可以完全脱离scanf/printf,仅使用cout来完成一切需要的格式化输入输出功能(从非性能的角度而言)。更进一步而言,您还可以在<sstream>、<fstre...

weixin_30319153的博客 3828

社会网络仿真软件:NetLogo_(14).社会网络数据导入与导出

在NetLogo中,社会网络的仿真不仅依赖于模型的内部逻辑,还需要能够灵活地导入和导出数据。这使得用户可以利用外部数据来初始化模型,或者将模型的运行结果导出以便进一步分析。本节将详细介绍如何在NetLogo中实现社会网络数据的导入和导出,包括常见的数据格式和具体的代码示例。

kkchenjj的博客 600

YOLOv11损失函数原理与源码解读:从调参血泪史到源码级优化

本文深入解析YOLOv11目标检测模型的损失函数设计,揭示其相比前代的关键改进。重点剖析了回归损失中动态权重的小目标优化、分类损失的带温度系数softmax、以及目标损失的自适应阈值机制等创新点。作者通过源码分析指出常见实现陷阱,如梯度回传的正确处理方式、标签分配的匹配策略等。结合实战经验,给出针对小目标检测、类别误判等典型问题的调参建议,并分享实用的调试工具代码片段。最后强调损失函数调参需结合具体任务,指出后处理对实际部署效果的重要影响。全文以工程实践为导向,为开发者提供可直接落地的优化思路。

as1225120794的博客 442

C++ cout格式化输出(超级详细)

C++ cout格式化输出(超级详细) 在某些实际场景中,我们经常需要按照一定的格式输出数据,比如输出浮点数时保留 2 位小数,再比如以十六进制的形式输出整数,等等。 对于学过 C 语言的读者应该知道,当使用 printf() 函数输出数据时,可以通过设定一些合理的格式控制符,来达到以指定格式输出数据的目的。例如 %.2f 表示输出浮点数时保留 2 位小数,%#X 表示以十六进制、带 0X 前缀的方式输出整数。 C++ 通常使用 cout 输出数据,和 printf() 函数相比,cout 实现格式化输出数

ccc369639963的博客 3万+

使用R语言中的NbClust包确定最佳聚类簇数

聚类分析是一种常用的数据分析技术,它将相似的数据点分组成不同的簇。NbClust包是R语言中一个强大的工具,它提供了多种方法来帮助我们确定最佳的聚类簇数。综上所述,使用R语言中的NbClust包可以帮助我们确定最佳的聚类簇数。通过选择适当的聚类算法和评估指标,我们可以更好地理解数据集的结构和模式,并根据需要进行进一步的分析和解释。此外,NbClust包还提供了其他函数和参数,用于执行不同的聚类算法、选择不同的评估指标等。安装完毕后,我们需要加载NbClust包,以便使用其中的函数。函数来确定最佳聚类簇数。

2301_79326559的博客 2280

C++ cout格式化输出

转自:http://c.biancheng.net/view/275.html C++ cout格式化输出(输出格式)完全攻略 有时希望按照一定的格式进行输出,如按十六进制输出整数,输出浮点数时保留小数点后面两位,输出整数时按 6 个数字的宽度输出,宽度不足时左边补 0,等等。在 C++ 中,用 cout 进行输出时,可以通过流操纵算子进行格式控制。 C++ 中常用的输出流操纵算子(也叫格式控制...

不死鸟 2276

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

使用cout格式化输出字符串

使用cout格式化输出字符串 cout是比较常用的功能,应该了解它的一些特性。 /********************************************************************     created:    2006/04/29

ReViSion的专栏 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

cout 常用的格式化输出 笔记

#include<iostream> #include <iomanip> using namespace std; void main() { { /* dec 10进制 oct 8进制 hex 16进制 */ int a = 256; cout << "十进制: " << dec << a...

漫步云端 350

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

c++ cout格式化输出_C ++ cout格式输出

c++ cout格式化输出How to format outputs with cout in C++? 如何在C ++中使用cout格式化输出? You need IO Manipulators <iomanip>: Header providing parametric manipulators. 您需要IO操纵器<iomanip> :提供参数操纵器的标头。 The...

cuma2369的博客 775

c 语言的输出函数cout,详解C++ cout格式化输出完全攻略

写算法题的时候突然发现自己忘记基本的C++:cout格式化输出了,赶紧拉出以前的C++学习笔记重新看一看。部分内容来自教程:C语言中文网(一个很棒的网站)有时希望按照一定的格式进行输出,如按十六进制输出整数,输出浮点数时保留小数点后面两位,输出整数时按 6 个数字的宽度输出,宽度不足时左边补 0,等等。C语言中的 printf() 函数使用以%开头的格式控制符,例如 %X、%.2f、%6d 等;C...

weixin_42298826的博客 6082

C++的cout格式化输出

C++中的cout对象是iostream库中的一个重要组成部分,它用于向标准输出设备(通常是屏幕)发送数据。总结一下,在C++中使用cout进行格式化输出是一种强大而灵活的方式来控制数据如何显示给用户。在C++中,我们可以使用cout进行格式化输出。在上述代码中,我们首先将整数以十六进制形式输出。然后,我们设置了输出字段的宽度为10,并将填充字符设置为星号。以上就是关于C++ cout对象进行格式化输出相关内容介绍及示例代码展示,在实际编程过程中可以根据需要选择合适方法进行操作以满足各种复杂场景需求。

高性价比服务器就选:蓝易云 782

C++ cout格式化输出完全攻略

写算法题的时候突然发现自己忘记基本的C++:cout格式化输出了,赶紧拉出以前的C++学习笔记重新看一看。 部分内容来自教程:C语言中文网(一个很棒的网站) 有时希望按照一定的格式进行输出,如按十六进制输出整数,输出浮点数时保留小数点后面两位,输出整数时按 6 个数字的宽度输出,宽度不足时左边补 0,等等。C语言中的 printf() 函数使用以%开头的格式控制符,例如 %X、%.2f、%...

橘嘉禾 122
上一篇: ubuntu中获取命令的源代码
下一篇: linux终端中输出彩色字体
AstrayLinux
博客等级 码龄15年 55粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值