#include<iostream>
#include<iomanip>
一:控制布尔值的格式
boolalpha noboolalpha
std::cout << true << std::endl;//1
std::cout << std::boolalpha;
std::cout << true << std::endl;//true
std::cout << false << std::endl;//false
std::cout << std::noboolalpha;
std::cout << false << std::endl;//0
二:指定整形值的进制
hex dec oct
std::cout << 20 << std::endl;//20
std::cout << std::oct << 20 << std::endl;//24
std::cout << std::dec << 20 << std::endl;//20
std::cout << std::hex << 20 << std::endl;//14
三:在输出中指出进制
std::cout << std::showbase;
std::cout << std::noshowbase;
std::cout << std::uppercase;
std::cout << std::nouppercase;
0x 十六进制
0 八进制
无 十进制
四:十六进制大写
std::cout << std::uppercase;
std::cout << std::nouppercase;
五:制定浮点数打印精度
std::cout << std::cout.precision() <<' ' << std::sqrt(2) << std::endl;
std::cout.precision(10);//std::cout<<std::setprecision(10);
std::cout << std::cout.precision() <<' ' << std::sqrt(2) << std::endl;
六:输出补白
int i = -19;
double d = 3.14159;
std::cout << "i: " << std::setw(10) << i << std::endl
<< "d: " << std::setw(10) << d << std::endl;
std::cout << std::left
<< "i: " << std::setw(10) << i << std::endl
<< "d: " << std::setw(10) << d << std::endl;
std::cout << std::right
<< "i: " << std::setw(10) << i << std::endl
<< "d: " << std::setw(10) << d << std::endl;
std::cout << std::internal
<< "i: " << std::setw(10) << i << std::endl
<< "d: " << std::setw(10) << d << std::endl;
std::cout << std::setfill('*')
<< "i: " << std::setw(10) << i << std::endl
<< "d: " << std::setw(10) << d << std::endl;
七:控制输入格式
std::cin>>std::noskipws;
std::cin>>std::skipws;
总结
定义在iostream中的操纵符
boolalpha 将true和false输出为字符串
*noboolalpha 将true 和false输出为1, 0
showbase 对整型值输出表示进制的前缀
*noshowbase 不生成表示进制的前缀
showpoint 对浮点值总是显示小数点
*noshowpoint 只有当浮点值包含小数部分时才显示小数点
showpos 对非负数显示 +
*noshowpos 对非负数不显示 +
uppercase 在十六进制值中打印OX,在科学记数法中打印E
*nouppercase 在十六进制值中打印0x,在科学记数法中打印e
*dec 整型值显示为十进制
hex 整型值显示为十六进制
oct 整型值显示为八进制
left 在值的右侧添加填充字符
right 在值的左侧添加填充字符
internal 在符号和值之间添加填充字符
fixed 浮点值显示为定点十进制
scientific 浮点值显示为科学记数法
hexfloat 浮点值显示为十六进制(C++11新特性)
defaultfloat 重置浮点数格式为十进制(++11新特性,
unitbuf 每次输出操作后都刷新缓冲区
*nounitbuf 恢复正常的缓冲区刷新方式
*skipws 输入运算符跳过空白符
noskipws 输入运算符不跳过空白符
flush 刷新ostream 缓冲区
ends 插入空字符,然后刷新ostream缓冲区
endl 插入换行,然后刷新ostream缓冲区
* 表示默认流状态