Skip to content

Latest commit

 

History

History
36 lines (27 loc) · 1.04 KB

io_state.md

File metadata and controls

36 lines (27 loc) · 1.04 KB

ストリームの状態を戻す

Boost IO State Savers Libraryを使用すると、ストリームオブジェクトを以前の状態に戻すことができる。

インデックス

boost::ios_flags_saveristreamもしくはostreamオブジェクトへの参照を渡すことで、そのスコープを抜ける際にフォーマットフラグを以前の状態に戻してくれる。

#include <iostream>
#include <iomanip>
#include <boost/io/ios_state.hpp>

void disp_hex(std::ostream& os, int value)
{
    // スコープを抜けたらフォーマットフラグを戻す
    boost::io::ios_flags_saver ifs(os);

    os << std::hex << value << std::endl;
}

int main()
{
    disp_hex(std::cout, 10);      // 16進数で出力
    std::cout << 10 << std::endl; // 10進数で出力
}

実行結果:

a
10