cout语句输出格式控制-c++

一、精度控制

  1. 输出时使用setprecision()和fixed进行精度控制和补0
  2. 函数 setprecision() 控制输出流的输出精度(精度控制采用四舍五入)
  3. setprecision单独使用是控制有效位数的,与fixed合用才是控制小数点后位数的
  4. 需要保留几位小数,就将 setprecision(n) 的括号里n换成几
  5. 在使用时,可以提前声明,也可以直接写在输出流中
float a=0.123;
cout<<a<<endl;//输出 0.123

cout<<setprecision(5)<<a<<endl;//输出 0.123

方法一:

//方法一:
cout<<setiosflags(ios::fixed)<<setprecision(5);
cout<<a<<endl;//输出 0.12300

方法二:

//方法二:
cout.setf(ios::fixed);
cout<<setprecision(5);
cout<<a<<endl;//输出 0.12300

方法三:

//方法三:
cout<<fixed<<setprecision(5)<<a;//输出 0.12300
  1. 需要保留几位小数,就将 setprecision(n) 的括号里n换成几
  2. 上面的语句写一次就够了,对之后的数字都有效
  3. 函数 setprecision() 控制输出流的输出精度(精度控制采用四舍五入)
    注意:setprecision单独使用是控制有效位数的,与fixed合用才是控制小数点后位数的
	float a=12.123456;
	cout<<setprecision(3)<<a; //输出12.1
	cout<<fixed<<setprecision(3)<<a;//输出12.123
  • fixed是设置补0,以下三种写法任选其一即可
	cout<<setiosflags(ios::fixed);
	cout.setf(ios::fixed);
	cout<fixed;

如果不想补0,可以设置关闭fixed

	cout.unsetf(ios::fixed); 

二、宽度控制

  1. 使用setw(n)函数。n表示宽度
  2. 使用setw()函数需要的头文件:#include<iomanip>。记来记去太麻烦了,建议直接使用万能头文件#include <bits/stdc++.h>
  • 当字段长度大于想要输出的长度时
#include <bits/stdc++.h>

using namespace std;

int main()
{
	cout<<setw(6)<<1234<<endl;
	return 0;
}

输出效果:
在这里插入图片描述

  • 当字段长度小于想要输出的长度时,setw()失效
#include <bits/stdc++.h>

using namespace std;

int main()
{
	cout<<setw(2)<<1234<<endl;
	return 0;
}

输出效果:
在这里插入图片描述

  • 借助setfill(‘X’),占位
#include <bits/stdc++.h>

using namespace std;

int main()
{
	cout<<setw(6)<<setfill('@')<<1234<<endl;
	return 0;
}

输出效果:
在这里插入图片描述

  • setw()默认的是输出右对齐,而当你想要左对齐时,便需要另外添加setiosflags(ios::left)来实现输出左对齐
#include <bits/stdc++.h>

using namespace std;

int main()
{
	cout<<setw(6)<<setiosflags(ios::left)<<setfill('@')<<1234<<endl;
	return 0;
}

输出效果
在这里插入图片描述

参考:https://blog.csdn.net/gyxx1998/article/details/103337790
https://blog.csdn.net/weixin_44091134/article/details/88372309

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值