📜  C++中的ios操纵器internal()函数(1)

📅  最后修改于: 2023-12-03 14:39:57.089000             🧑  作者: Mango

C++中的ios操纵器internal()函数

在C++中,ios操纵器被用于控制标准输入输出流(istreamostream)的格式和状态。internal()是其中一个ios操纵器函数,用于控制数值的对齐方式。

介绍internal()函数

internal()函数是std::ios::internal操纵器的成员函数。它用于控制ostream对象中输出数据时的数值对齐方式。使用internal()函数后,输出的数值将始终采用内部对齐方式,即在字段宽度内右对齐,左侧填充空格。

使用语法

下面是internal()函数的使用语法:

std::ios_base& internal ( std::ios_base& str );

该函数接受一个名为strstd::ios_base对象的引用作为参数,并返回同一个对象的引用。

示例代码

下面是一个示例代码,展示了internal()函数的用法:

#include <iostream>
#include <iomanip>

int main() {
  int num1 = 12345;
  int num2 = -6789;

  std::cout << "Default alignment:" << std::endl;
  std::cout << std::setw(10) << num1 << std::endl;
  std::cout << std::setw(10) << num2 << std::endl;

  std::cout << "Internal alignment:" << std::endl;
  std::cout << std::internal << std::setw(10) << num1 << std::endl;
  std::cout << std::internal << std::setw(10) << num2 << std::endl;

  return 0;
}

上述代码首先输出了默认对齐方式下的两个数值。然后使用std::internal操纵器将对齐方式修改为内部对齐,再次输出相同的数值。运行上述代码,将得到如下输出:

Default alignment:
     12345
     -6789
Internal alignment:
    12345
    -6789
注意事项
  • internal()函数只对其后的第一个setw生效,而不是全局生效。
  • 在使用internal操纵器后,如果再使用leftright操纵器,则对齐方式会被覆盖。

参考文档:cppreference - ios