最終更新日時(UTC):
が更新

履歴 編集

function
<iomanip>

std::setbase

namespace std {
  unspecified setbase(int base);
}

概要

基数を設定する。ただし、ios_base::oct, ios_base::dec, ios_base::hexのいずれにも対応しない値が来た場合、フォーマットフラグはリセットされる。

効果

このマニピュレータをストリームオブジェクトに適用することにより、以下の関数と等価の効果を持つ:

void f(std::ios_base& str, int base) {
  str.setf(base == 8  ? std::ios_base::oct :
           base == 10 ? std::ios_base::dec :
           base == 16 ? std::ios_base::hex :
           std::ios_base::fmtflags(0), std::ios_base::basefield);
}

このマニピュレータは、入力ストリームと出力ストリームのどちらに対しても適用できる。

#include <iostream>
#include <iomanip>

int main()
{
  unsigned int i = 0xDEADBEEF;
  std::cout << std::setbase(16) << i << std::endl;
  std::cout << std::setbase(10) << i << std::endl;
  std::cout << std::setbase(8)  << i << std::endl;
  std::cout << std::setbase(2)  << i << std::endl;
}

出力例

deadbeef
3735928559
33653337357
3735928559