【C++】cout的格式输出

在这里插入图片描述

个人主页<—请点击
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账号,我们一同成长!
(~ ̄▽ ̄)~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

矢 望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值