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

【C++】cout的格式输出

目录

  • 一、cout的格式输出
    • 1、控制宽度和填充
    • 2、控制数值格式
    • 3、控制整数格式
    • 4、控制对齐方式

在这里插入图片描述

个人主页<—请点击
C++专栏<—请点击

一、cout的格式输出

printf函数在输出数据的时候,可以指定格式来输出,比如:指定宽度、指定小数点后的位数、对齐方式等等。那么cout在数据的时候能否指定格式呢?也是可以的,cout结合<iomanip> (IO manipulators)头文件中的操纵符,可以灵活控制输出格式,从而满足各种格式化需求。

1、控制宽度和填充

setw:设置字段宽度(只对紧接着的输出项有效)setfill:设置填充字符。这两个函数都在<iomanip>头文件下。

代码段定义一个整型a,并以默认、设置宽度、设置宽度及填充字符展示:

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{int a = 100;cout << a << endl;cout << setw(10) << a << endl;cout << setw(10) << setfill('0') << a << endl;return 0;
}

运行结果
在这里插入图片描述
注意setw设置的字段宽度只对紧接着的输出项有效,例如:

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{int a = 100;double b = 3.14;cout << a << endl;cout << setw(10) << a << b << endl;return 0;
}

在这里插入图片描述

2、控制数值格式

fixed:以固定小数点表示浮点数设置后就不会以科学计数法展示了
scientific:以科学计数法表示浮点数
setprecision:设置浮点数的精度,以控制小数点后的数字位数,⼀般先固定小数点,再设置精度。
其中setprecision<iomanip>的头文件下。

我们以小数3.141592653589793来进行演示:

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{double pi = 3.141592653589793;cout << pi << endl;return 0;
}

运行结果
在这里插入图片描述
从运行结果上,我们可知默认情况下的输出是有小数点位数限制的,为了输出格式可以让我们控制,C++中才有了这些函数。

默认情况fixed的情况:

double pi = 3.141592653589793;
cout << pi << endl;
cout << fixed << pi << endl;

运行结果
在这里插入图片描述
fixed是以固定小数点表示浮点数,上图不明显,我们看下图:
在这里插入图片描述
默认情况scientific的情况:

double pi = 3.141592653589793;
cout << pi << endl;
cout << scientific << pi << endl;

运行结果
在这里插入图片描述
打印出来的结果是以科学计数法表示的,也就是3.141493*100

默认情况setprecision的情况:

double pi = 3.141592653589793;
cout << pi << endl;
cout << setprecision(3) << pi << endl;

运行结果
在这里插入图片描述
这里用了setprecision显示的是3.14,但()中是3,所以此时的3默认是有效数字,但我们的本意是保留三位小数,这时我们在前面加上fixed就好了。

注意:在不使用fixed的情况下,setprecision的行为在不同编译器和系统上可能会导致输出差异。

double pi = 3.141592653589793;
cout << pi << endl;
cout << fixed << setprecision(3) << pi << endl;

运行结果
在这里插入图片描述

3、控制整数格式

  • dec:以十进制格式显示整数(默认)
  • hex:以十六进制格式显示整数。
  • oct:以八进制格式显示整数。
int a = 21;
cout << "    默认: " << a << endl;
cout << "  十进制: " << dec << a << endl;
cout << "十六进制: " << hex << a << endl;
cout << "  八进制: " << oct << a << endl;

在这里插入图片描述

4、控制对齐方式

left:左对齐,right:右对齐(默认)

int a = 121;
cout << "  默认:" << setw(5) << a << "#" << endl;
cout << "左对齐:" << setw(5) << left << a << "#" << endl;
cout << "右对齐:" << setw(5) << right << a << "#" << endl;

运行结果
在这里插入图片描述

总结:
以上就是本期博客分享的全部内容啦!如果觉得文章还不错的话可以三连支持一下,你的支持就是我前进最大的动力!
技术的探索永无止境! 道阻且长,行则将至!后续我会给大家带来更多优质博客内容,欢迎关注我的CSDN账号,我们一同成长!
(~ ̄▽ ̄)~

http://www.xdnf.cn/news/5605.html

相关文章:

  • thinkphp模板文件缺失没有报错/thinkphp无法正常访问控制器
  • 每周靶点分享:CD123、CD28、CCR2/CCL2、LAG-3
  • 云平台管理部署知识点——问题+答案
  • exsi导入镜像报错:行26:硬件系列‘wmx-19不受支持
  • 编译原理AST以Babel为例进行解读、Webpack中自定义loader与plugin
  • 从零构建高性能桌面应用:GPUI Component全解析与实战指南
  • 【C++】语言深处的“精灵”:探索内存的奥妙
  • 香港维尔利健康科技集团成都区域运营中心投入使用,西南市场战略全面提速
  • 基于STM32、HAL库的ICP-20100气压传感器 驱动程序设计
  • 解决IDEA Maven编译时@spring.profiles.active@没有替换成具体环境变量的问题
  • day23 机器学习管道 Pipeline
  • 掌握MySQL数据库操作:从创建到管理全攻略
  • uni-app学习笔记五--vue3插值表达式的使用
  • AI日报 · 2025年5月12日|OpenAI 更新「Supervised Fine‑Tuning」文档与 API 示范
  • Qt Creator 配置 Android 编译环境
  • Matlab 单机无穷大系统故障
  • 24、DeepSeek-V3论文笔记
  • 可信固件更新机制
  • 西电 | 2025年拟录取研究生个人档案录取通知书邮寄通知
  • Python制作Dashboard【待续】
  • 【AI】mcp server本质就是一个接口服务么
  • Flask支持哪些日志框架
  • ARM Cortex-M3内核详解
  • ES常识7:ES8.X集群允许4个 master 节点吗
  • 字节开源FlowGram与n8n 技术选型
  • 负载均衡 ELB 在 zkmall开源商城高流量场景下的算法优化
  • 通信网络编程——JAVA
  • 基于Backtrader库的策略管理模块解析
  • Python训练打卡Day21
  • 【SSM-SpringMVC(三)】Spring接入Web环境!介绍SpringMVC的拦截器和异常处理机制