C++/標準ライブラリ/ios
表示
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」も参照