数据输出格式控制

#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;
}

猜你喜欢

转载自blog.csdn.net/qq_21162393/article/details/90077176