C++格式化输出

背景:一开始开发C++都是用的C语言的格式化sprintf,后来了解到可以通过cout和stringstream个格式化

输出终端格式化:

setw(int):为设置宽度

setfill(char):为填充的字符串

都在iomanip的头文件中

#include <iostream>
#include <iomanip>
using namespace std;
 
void main(){
 
	int data = 0x01020304;
	cout << hex << setw(8)<< setfill('0') << data << endl;
 
 
	int data_2 = 8;
	cout << hex << setw(8) << setfill('0') << data_2 << endl;
	cout << hex << setw(7) << setfill('0') << data_2 << endl;
	cout << setw(6) << setfill('1') << data_2 << endl;
 
	getchar();
	return;
}

 

变量格式化:可以把long型格式化为16进制的字符串,并且可以设置宽度和填充字符

#include <sstream>
#include <iostream>
#include <iomanip>
#include <string>

using namespace std;
int main() {
    long number = 0x232234234;
    std::stringstream duration_format;
    duration_format << hex << setw(5) << setfill('0') << number;

    cout << duration_format.str() << endl;
}

 

注意:

  • 如果setw()里的数值小于实际的输出宽度时,宽度设置无效,可以使用 (number & 0x0FFFF)来对齐。
  • setw默认是右对齐,如果想要左对齐,需要添加setiosflags(ios::left)来实现输出左对齐。

https://blog.youkuaiyun.com/weixin_44091134/article/details/88372309

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值