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