cppreference.com -> C++ I/O Flags

C++ I/O 标志

C++为标准输入和输出定义了一些格式标志, 它可以通过flags(), setf(), 和 unsetf() 三个函数来控制. 例如,

    cout.setf(ios::left);

对所有指向cout的输出进行左对齐调整.

标志功能
boolalpha可以使用单词"true"和"false"进行输入/输出的布尔值.
dec用十进制格式显示后面的数值.
fixed用正常的记数方法显示浮点数(与科学计数法相对应).
hex用十六进制格式显示后面的数值.
internal将填充字符回到符号和数值之间.
left输出调整为左对齐.
oct用八进制格式显示后面的数值.
right输出调整为右对齐.
scientific用科学记数法显示浮点数.
showbase输出时显示所有数值的基数.
showpoint显示小数点和额外的零,即使不需要.
showpos在非负数值前面显示"+".
skipws当从一个流进行读取时,跳过空白字符(spaces, tabs, newlines).
unitbuf在每次插入以后,清空缓冲区.
uppercase以大写的形式显示科学记数法中的"e"和十六进制格式的"x".

也可以通过使用下面的操作符,不直接操作标志。大多数的编程人员都都熟悉endl操作符,它给我们一个使用操作符的启示。例如:当我们设置dec标志时, 我们可以使用下面的命令:

  cout << dec;
<iostream>中定义的操作符
操作符描述输入 输出
boolalpha启用boolalpha标志 XX
dec启用dec标志X X
endl输出换行标示,并清空缓冲区 X
ends输出空字符 X
fixed启用fixed标志 X
flush清空流 X
hex启用 hex 标志 XX
internal启用 internal 标志 X
left启用 left 标志 X
noboolalpha关闭boolalpha 标志 XX
noshowbase关闭showbase 标志X
noshowpoint关闭showpoint 标志 X
noshowpos关闭showpos 标志 X
noskipws关闭skipws 标志 X
nounitbuf关闭unitbuf 标志 X
nouppercase关闭uppercase 标志 X
oct启用 oct 标志 XX
right启用 right 标志 X
scientific启用 scientific 标志X
showbase启用 showbase 标志 X
showpoint启用 showpoint 标志X
showpos启用 showpos 标志 X
skipws启用 skipws 标志 X
unitbuf启用 unitbuf 标志 X
uppercase启用 uppercase 标志X
ws跳过所有前导空白字符X
在<iomanip>中定义的操作符
操作符描述输入输出
resetiosflags( long f )关闭被指定为f的标志XX
setbase( int base )设置数值的基本数为baseX
setfill( int ch )设置填充字符为chX
setiosflags( long f )启用指定为f的标志XX
setprecision( int p )设置数值的精度X
setw( int w )设置域宽度为wX