std:: basic_ifstream
|
ヘッダーで定義
<fstream>
|
||
|
template
<
class
CharT,
|
||
クラステンプレート
basic_ifstream
は、ファイルベースのストリームに対する高レベルな入力操作を実装します。これはファイルベースのストリームバッファ(
std::basic_filebuf
)を高レベルインターフェース(
std::basic_istream
)と連携させます。
std::basic_ifstream
の典型的な実装は、ただ1つの非派生データメンバーのみを保持します:
std::
basic_filebuf
<
CharT, Traits
>
のインスタンスです。
継承図
一般的な文字型に対するいくつかのtypedefが提供されています:
|
定義済みヘッダー
<fstream>
|
|
| 型 | 定義 |
std::ifstream
|
std :: basic_ifstream < char > |
std::wifstream
|
std :: basic_ifstream < wchar_t > |
目次 |
メンバー型
| メンバー型 | 定義 |
char_type
|
CharT
|
traits_type
|
Traits
; プログラムは、
Traits::char_type
が
CharT
でない場合、不適格となる。
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
native_handle_type
(C++26)
|
implementation-defined
型であり、
TriviallyCopyable
かつ
semiregular
である
|
メンバー関数
|
ファイルストリームを構築する
(public member function) |
|
|
(destructor)
[virtual]
(implicitly declared)
|
basic_ifstream
と関連するバッファを破棄し、ファイルを閉じる
(virtual public member function) |
|
(C++11)
|
ファイルストリームを移動する
(public member function) |
|
(C++11)
|
2つのファイルストリームを交換する
(public member function) |
|
基盤となる生ファイルデバイスオブジェクトを返す
(public member function) |
|
|
(C++26)
|
基盤となる実装定義のハンドルを返す
(public member function) |
ファイル操作 |
|
|
ストリームに関連付けられたファイルがあるかどうかをチェックする
(public member function) |
|
|
ファイルを開き、ストリームに関連付ける
(public member function) |
|
|
関連付けられたファイルを閉じる
(public member function) |
|
非メンバー関数
|
(C++11)
|
std::swap
アルゴリズムを特殊化
(関数テンプレート) |
std:: basic_istream から継承
メンバ関数
書式化入力 |
|
|
書式化データを抽出
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
非書式化入力 |
|
|
文字を抽出
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
次の文字を抽出せずに読み取る
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
文字を非抽出
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
入力ストリームに文字を戻す
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
指定された文字が見つかるまで文字を抽出
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
指定された文字が見つかるまで文字を抽出して破棄
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
文字ブロックを抽出
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
利用可能な文字ブロックを抽出
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
最後の非書式化入力操作で抽出された文字数を返す
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
位置指定 |
|
|
入力位置指示子を返す
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
|
入力位置指示子を設定
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
その他 |
|
|
基盤となる記憶装置と同期
(
std::basic_istream<CharT,Traits>
の公開メンバ関数)
|
|
メンバクラス
|
入力操作のためのストリーム準備の基本ロジックを実装
(
std::basic_istream<CharT,Traits>
の公開メンバクラス)
|
std:: basic_ios から継承
メンバ型
| メンバ型 | 定義 |
char_type
|
CharT
|
traits_type
|
Traits
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
メンバ関数
状態関数 |
|
|
エラーが発生しておらず、I/O操作が利用可能かチェックする
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
ファイル終端に達したかチェックする
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
エラーが発生したかチェックする
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
回復不可能なエラーが発生したかチェックする
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
エラーが発生したかチェックする(
fail()
の同義語)
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
エラーが発生していないかチェックする(
!
fail()
の同義語)
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
状態フラグを返す
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
状態フラグを設定する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
状態フラグを変更する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
書式設定 |
|
|
書式情報をコピーする
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
埋め文字を管理する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
その他 |
|
|
例外マスクを管理する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
ロケールを設定する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
関連付けられたストリームバッファを管理する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
関連付けられたストリームを管理する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
文字をナロー化する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
|
文字をワイド化する
(
std::basic_ios<CharT,Traits>
の公開メンバ関数)
|
|
std:: ios_base から継承
メンバー関数
フォーマット |
|
|
フォーマットフラグを管理する
(
std::ios_base
のpublicメンバ関数)
|
|
|
特定のフォーマットフラグを設定する
(
std::ios_base
のpublicメンバ関数)
|
|
|
特定のフォーマットフラグをクリアする
(
std::ios_base
のpublicメンバ関数)
|
|
|
浮動小数点演算の10進精度を管理する
(
std::ios_base
のpublicメンバ関数)
|
|
|
フィールド幅を管理する
(
std::ios_base
のpublicメンバ関数)
|
|
ロケール |
|
|
ロケールを設定する
(
std::ios_base
のpublicメンバ関数)
|
|
|
現在のロケールを返す
(
std::ios_base
のpublicメンバ関数)
|
|
内部拡張可能配列 |
|
|
[static]
|
pword()
および
iword()
のインデックスとして安全に使用できるプログラム全体で一意の整数を返す
(
std::ios_base
のpublic staticメンバ関数)
|
|
必要に応じてプライベートストレージをリサイズし、指定されたインデックスの
long
要素にアクセスする
(
std::ios_base
のpublicメンバ関数)
|
|
|
必要に応じてプライベートストレージをリサイズし、指定されたインデックスの
void
*
要素にアクセスする
(
std::ios_base
のpublicメンバ関数)
|
|
その他 |
|
|
イベントコールバック関数を登録する
(
std::ios_base
のpublicメンバ関数)
|
|
|
[static]
|
C++とCのI/Oライブラリが相互運用可能かどうかを設定する
(
std::ios_base
のpublic staticメンバ関数)
|
メンバクラス |
|
|
ストリーム例外
(
std::ios_base
のpublicメンバクラス)
|
|
|
標準ストリームオブジェクトを初期化する
(
std::ios_base
のpublicメンバクラス)
|
|
メンバー型と定数 |
|||||||||||||||||||||||||||||||||||||||
| 型 | 説明 | ||||||||||||||||||||||||||||||||||||||
|
ストリームオープンモード型
以下の定数も定義されています:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
書式フラグ型
以下の定数も定義されています:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
ストリームの状態を表す型
以下の定数も定義されています:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
シーク方向の型
以下の定数も定義されています:
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
イベント種別を指定
(列挙型) |
|||||||||||||||||||||||||||||||||||||||
|
コールバック関数型
(typedef) |
|||||||||||||||||||||||||||||||||||||||
注記
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_fstream_native_handle
|
202306L
|
(C++26) | ネイティブハンドルサポート |
例
#include <fstream> #include <iostream> #include <string> int main() { std::string filename = "Test.b"; // 読み取り用ファイルを準備 double d = 3.14; std::ofstream(filename, std::ios::binary) .write(reinterpret_cast<char*>(&d), sizeof d) << 123 << "abc"; // ファイルを読み取り用にオープン std::ifstream istrm(filename, std::ios::binary); if (!istrm.is_open()) std::cout << "failed to open " << filename << '\n'; else { double d; istrm.read(reinterpret_cast<char*>(&d), sizeof d); // バイナリ入力 int n; std::string s; if (istrm >> n >> s) // テキスト入力 std::cout << "read back from file: " << d << ' ' << n << ' ' << s << '\n'; } }
出力:
read back from file: 3.14 123 abc