函数
<ios> <iostream>

std::internal

ios_base& internal (ios_base& str);
内部对齐,通过在内部位置插入字符进行字段调整
str流的 adjustfield 格式标志设置为 internal

adjustfield 设置为 internal 时,输出会通过在指定内部位置插入填充字符 (fill) 来填充到字段宽度 (width)。对于数值,此内部位置位于符号和/或数值基数与数值幅度之间。对于非数值,此设置等同于 right

adjustfield 格式标志可以采用以下任意值(每个都有自己的操作符)

标志值设置时的效果
internal输出在指定内部点通过插入填充字符fill characters)来填充到字段宽度
left输出在结尾处附加填充字符fill characters)来填充到字段宽度
right输出在开头插入填充字符fill characters)来填充到字段宽度

对于标准流,adjustfield 标志在初始化时设置为 right

参数

str
adjustfield 格式标志影响的流对象。
因为此函数是一个操纵符,它被设计为在不带参数的情况下,与流上的插入 (<<) 和提取 (>>) 操作结合使用(见下例)。

返回值

参数 str

示例

1
2
3
4
5
6
7
8
9
10
// modify adjustfield using manipulators
#include <iostream>     // std::cout, std::internal, std::left, std::right

int main () {
  int n = -77;
  std::cout.width(6); std::cout << std::internal << n << '\n';
  std::cout.width(6); std::cout << std::left << n << '\n';
  std::cout.width(6); std::cout << std::right << n << '\n';
  return 0;
}

输出
-   77
-77
   -77


数据竞争

修改 str。对同一个流对象的并发访问可能导致数据竞争。

异常安全

基本保证:如果抛出异常,str 处于有效状态。

另见