[C.C++] C++ 头文件 iomanip

244 0
Honkers 2025-5-29 02:25:24 来自手机 | 显示全部楼层 |阅读模式

C++ 头文件 iomanip

iomanip是I/O流控制头文件,主要是对cin和cout操纵的算子。(io是input、output(输入输出),manip是manipulator(操纵器,操纵算子))

1.设置字段宽度setw(int n)

  1. cout << setw(5) << 248 << endl;
  2. 运行结果
  3. 248
复制代码

2.流输出进制

dec 置基数为10 相当于"%d"
hex 置基数为16 相当于"%X"
oct 置基数为8 相当于"%o"
流输出二进制需要包含 头文件,调用bitset(int n)函数将十进制输出为二进制

  1. cout << hex << 255 << endl;
  2. cout << bitset<11>(255) << endl;
  3. 运行结果
  4. ff
  5. 00011111111
复制代码

3.填充字符setfill(char c)

在预设宽度中,如果存在没有用完的宽度大小,则用字符c填充

  1. cout << setfill('0') << setw(6) << 248 << endl;
  2. 运行结果:
  3. 000248
复制代码

4.进制转换setbase(int n)

将某一个十进制数转换为一个n进制的数,实际上只能是8和16进制,如果是2~36任意进制还是使用头文件中itoa()函数。

  1. cout<< setbase(8) << setw(5) << 255 << endl;
  2. 运行结果:
  3. 377
复制代码

5.设置小数精度setprecision(int n)

控制输出流显示浮点数的数字个数(包括整数部分),默认的流输出数值有效位是6。

  1. cout << setprecision(3) << 22.123 << endl;
  2. cout << setprecision(8) << 22.123 << endl; //比原字符长不会补零!
  3. 运行结果:
  4. 22.1
  5. 22.123
复制代码

6.设置格式标志setiosflags(ios_base::fmtflags mask)

用setiosflags(ios::fixed)或者直接用fixed都行

方法格式
setiosflags(ios::scientific)是用指数方式表示实数
setiosflags(ios::fixed)固定的浮点显示
setiosflags(ios::scientific)指数表示
setiosflags(ios::left)左对齐
setiosflags(ios::right)右对齐
setiosflags(ios::skipws)忽略前导空白
setiosflags(ios::uppercase)16进制数大写输出
setiosflags(ios::lowercase)16进制小写输出(VS2010中该方法已不使用,意外使用显示没有该成员错误)
setiosflags(ios::showpoint)强制显示小数点
setiosflags(ios::showpos)强制显示符号
  1. cout<< fixed << setw(10) << 3.1415926 << endl;
  2. cout<< setiosflags(ios::fixed) << setw(10) << 3.1415926 << endl;
  3. 运行结果:
  4. 3.141593
  5. 3.141593
复制代码

6.重置格式标志resetiosflags(ios_base::fmtflags mask)

终止已经设置的输出格式状态,在括号中应指定内容

  1. cout << fixed << setw(10) << 3.1415926 << endl;
  2. cout << resetiosflags(ios::fixed) << setw(10) << 3.1415926 << endl;
  3. cout << hex << showbase << 100 << endl;
  4. cout << resetiosflags(ios::showbase) << 100 << endl;
  5. 运行结果:
  6. 3.141593
  7. 3.14159
  8. 0x64
  9. 64
复制代码

转载来源:

C/C++笔试必须熟悉掌握的头文件系列(十)——iomanip.h/iomanip

C++ 标准库之iomanip

std::resetiosflags()函数

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 4013
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行