最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

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