您的位置:首页 > 编程语言 > C语言/C++

C/C++的格式化输出(2)--cout

2017-06-04 00:00 274 查看
二、cout格式化输出

将 cout 的 flag 保存到变量, 以便修改后的恢复

ostream::fmtflags old = cout.flag() ; // 无参将返回当前 flag 值
cout.flag(old) ; // 恢复到原先保存的值


cout.setf设置标志


[code=plain]cout.setf(ios::right | ios::hex);
//设置16进制右对齐

cout.setf(ios::right, ios::adjustfield);
//取消其它对齐,设置为右对齐




cout.unsetf取消标志



[code=plain]cout.unsetf(ios_base::dec);
//
取消10进制[/code]
[code=plain]cout.setf(ios_base::hex
);
//设置为16进制

等同于

[code=plain]cout.setf(ios_base::hex, ios_base::dec);
//取消其它对齐,设置为右对齐
[/code]

控制输出格式和成员函数

int width( ):设置域宽; int fill( ):填充字符; int precision( ):设置精度;


如果要与scanf和printf联合使用,务必在调用cout前加上cout.sync_with_stdio(),设置与stdio同步,否则输出的数据顺序会发生混乱。
flush和endl都会将当前缓冲区中的内容立即写入到屏幕上,而unitbuf/nounitbuf可以禁止或启用缓冲区。

ios::dec 以10进制表示整数

ios::hex 以16进制表示整数

ios::oct 以8进制表示整数

ios::showbase 为整数添加一个表示其进制的前缀

ios::internal 在符号位和数值的中间插入需要数量的填充字符以使串两端对齐

ios::left 在串的末尾插入填充字符以使串居左对齐

ios::right 在串的前面插入填充字符以使串居右对齐

ios::boolalpha 将bool类型的值以true或flase表示,而不是1或0

ios::fixed 将符点数按照普通定点格式处理(非科学计数法)

ios::scientific 将符点数按照科学计数法处理(带指数域)

ios::showpoint 在浮点数表示的小数中强制插入小数点(默认情况是浮点数表示的整数不显示小数点)

ios::showpos 强制在正数前添加+号

ios::skipws 忽略前导的空格(主要用于输入流,如cin)

ios::unitbuf 在插入(每次输出)操作后清空缓存

ios::uppercase 强制大写字母
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cout