メモの日々


2016年05月17日(火) [長年日記]

[c++] C++のストリームに最小フィールド幅を指定する

ストリーム出力時に最小フィールド幅を設定するにはstd::setw()を使う。

以前にメモした精度指定桁数指定と組み合わせた例をメモ。std::setw()の効果は直後の値にしか効かないようなので注意が必要。

#include <iomanip>
#include <iostream>

int main()
{
  const auto v0 = 2.0 / 3.0;
  const auto v1 = 2.0 / 3.0 * 1000;
  const auto v2 = 2.0 / 3.0 * 1000 * 1000;

  std::cout << std::fixed << std::setprecision(3);
  std::cout << std::setw(8) << v0 << ", " << v0 << std::endl;
  std::cout << std::setw(8) << v1 << ", " << v1 << std::endl;
  std::cout << std::setw(8) << v2 << ", " << v2 << std::endl;
}
   0.667, 0.667
 666.667, 666.667
666666.667, 666666.667