数据输出格式控制

#include "iostream"

int main(void)
{
	int a(1000), b(1234567890);
	double f(12345.123466789);

	std::cout << "默认下width() = " << std::cout.width() << std::endl;	//显示默认的字段宽度
	std::cout << "默认下flags() = " << std::cout.flags() << std::endl;	//显示默认的字段宽度
	//控制不同进制输出
	std::cout << "默认下:" << a << std::endl;
	std::cout << "十进制:" << std::dec << a << std::endl;		//将输出设置为十进制
	std::cout << "八进制:" << std::oct << a << std::endl;		//将输出设置为八进制
	std::cout << "十六进制:" << std::hex << a << std::endl;	//将输出设置为十六进制

	//控制不同宽度输出
	// field width
	/*
	**	设置输出标记 std::cout.flags(std::ios::***)	
	**	left:左对齐	right:右对齐
	**	dec:十进制		oct:八进制		hex:十六进制
	**	showbase:显示前缀	unshowbase:不显示前缀
	*/
	std::cout.flags(std::ios::right | std::ios::dec | std::ios::showbase);
	std::cout << 100 << '\n';
	std::cout.width(5);		//设置输出字段宽度 5
	std::cout << 100 << '\n';
	std::cout.fill('x');	//设置输出填充字段 'x'
	std::cout.width(15);
	std::cout << std::left << 100 << '\n';//左对齐

	//	setf 和 unsetf
	/*	
	*********************************************
				fmtfl 					mask 
	*********************************************
		left, right or internal		adjustfield
		dec, oct or hex				basefield
		scientific or fixed			floatfield
	*********************************************
	*/
	std::cout.setf(std::ios::hex, std::ios::basefield);  // set hex as the basefield
	std::cout.setf(std::ios::showbase);                  // activate showbase
	std::cout << 100 << '\n';
	std::cout.unsetf(std::ios::showbase);                // deactivate showbase
	std::cout << 100 << '\n';

	// modify precision
	std::cout.setf(std::ios::scientific, std::ios::floatfield);//科学计数法
	std::cout.precision(5);
	std::cout << f << '\n';
	std::cout.precision(10);
	std::cout << f << '\n';
	std::cout.setf(std::ios::fixed, std::ios::floatfield); // floatfield set to fixed
	std::cout.precision(5);
	std::cout << f << '\n';
	std::cout.precision(10);
	std::cout << f << '\n';
	std::cout.unsetf(std::ios::floatfield);             // floatfield not set
	std::cout.precision(5);
	std::cout << f << '\n';
	std::cout.precision(10);
	std::cout << f << '\n';

	system("pause");
	return 0;
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值