C++教科書/標準ライブラリ編/<ios>の章
編集はじめに
編集<ios>
ヘッダーファイルは、C++標準ライブラリの重要な構成要素であり、入出力 (I/O) ストリームとストリームマニピュレータに関する宣言を提供します。これらのストリームは、ファイル、コンソール、メモリバッファなど、さまざまなデータソースとのやり取りを可能にします。
キーインクルージョン
編集#include <iosfwd> // I/O ストリームクラスの前方参照宣言
クラス
編集ios_base
編集- すべての I/O ストリームの基底クラスとして機能します。
- 書式設定フラグ (例:
boolalpha
、showpoint
) と I/O 例外 (io_errc
) を管理します。 - 次のようなメンバー関数を提供します:
- 書式設定フラグの設定/照会 (
flags()
,flags(fmtfl)
,setf()
) - ストリーム精度 (
precision()
) と幅 (width()
) の設定/照会 - ストリームロケールの設定/取得 (
imbue()
,getloc()
) - エラー処理とコールバック (
register_callback()
)
- 書式設定フラグの設定/照会 (
ios_base::failure (ios_base 内にネスト)
編集- I/O ストリームエラー専用の例外クラスです。
std::system_error
から継承します。
ios_base::Init (ios_base 内にネスト)
編集- 初期化目的のプライベートヘルパークラスです。
- 直接の使用を意図したものではありません。
fpos<StateT> (テンプレート)
編集- ストリームまたはファイル内の絶対位置を表します。
basic_ios<CharT, Traits = char_traits<CharT>> (テンプレート)
編集- 基本的な I/O ストリームクラステンプレートです。
- 2つのテンプレートパラメータを受け取ります:
CharT
: 文字型 (例:char
、wchar_t
)Traits
: 文字特性型 (例:std::char_traits<CharT>
)
ios_base
から継承します。- 次のようなメンバー関数を提供します:
- ストリーム状態管理 (
rdstate()
,clear()
,setstate()
) - エラーチェック (
good()
,eof()
,fail()
,bad()
) - 例外処理 (
exceptions()
,exceptions(iostate)
) - ストリームバッファの関連付け (
rdbuf()
,rdbuf(basic_streambuf*)
) - ストリーム操作 (
copyfmt()
) - 文字関連操作 (
fill()
,imbue()
,narrow()
,widen()
)
- ストリーム状態管理 (
ストリームマニピュレータ
編集<ios>
ヘッダーにあるこれらの関数は、I/O ストリームの書式設定と動作を変更します。通常、挿入 (<<
) と抽出 (>>
) 演算子とともに使用されます。以下に、よく使用されるマニピュレータをいくつか示します:
boolalpha
: ブールのテキスト表現と数値表現を切り替えます (例:true
対1
)。showbase
: 数値出力にベースインジケータをプレフィックスします (例: 16進数の場合0x
)。showpoint
: 浮動小数点出力に常に小数点を含めます。showpos
: 正の数字にプラス記号 (+
) をプレフィックスするかどうかを制御します。skipws
: 入力時に先行する空白をスキップします。uppercase
: 一部の出力形式で文字が大文字になるようにします。unitbuf
: 各操作後に出力ストリームをフラッシュします。
補足
編集<ios>
ヘッダーは、I/O エラー処理用のmake_error_code()
およびmake_error_condition()
などのヘルパー関数も定義します。iostream_category()
関数は、I/O ストリームエラーカテゴリを識別するために使用されます。
「C++/標準ライブラリ/iostream」も参照