basic_ifstream クラス

Elem 型の要素を含む basic_filebuf<Elem, Tr> クラスのストリーム バッファーからの要素とエンコードされたオブジェクトの抽出を制御するオブジェクトを記述します。この型の特性は、Tr クラスによって決定されます。

詳細については、basic_filebufを参照してください。

構文

template <class Elem, class Tr = char_traits<Elem>>
class basic_ifstream : public basic_istream<Elem, Tr>

パラメーター

Elem
ファイル バッファーの基本要素。

Tr
ファイル バッファーの基本要素の特徴 (通常は char_traits<Elem>)。

解説

このオブジェクトは、クラス basic_filebuf<Elem, Tr> のオブジェクトを格納します。

次の例は、ファイルからテキストを読み取る方法を示しています。

// basic_ifstream_class.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    ifstream ifs("basic_ifstream_class.txt");
    if (!ifs.bad())
    {
        // Dump the contents of the file to cout.
        cout << ifs.rdbuf();
        ifs.close();
    }
}

入力: basic_ifstream_class.txt

This is the contents of basic_ifstream_class.txt.

出力

This is the contents of basic_ifstream_class.txt.

コンストラクター

コンストラクター 説明
basic_ifstream basic_ifstream オブジェクトの新しいインスタンスを初期化します。

メンバー関数

メンバー関数 説明
close ファイルを閉じます。
is_open ファイルが開いているかどうかを判断します。
open ファイルを開きます。
rdbuf 格納されたストリーム バッファーのアドレスを返します。
swap この basic_ifstream の内容を、指定された basic_ifstream の内容と交換します。

演算子

演算子 説明
operator= このストリーム オブジェクトの内容を割り当てます。 これは、rvalue が関係する移動代入で、コピーを残しません。

要件

ヘッダー: <fstream>

名前空間: std

basic_ifstream::basic_ifstream

basic_ifstream 型のオブジェクトを構築します。

basic_ifstream();

explicit basic_ifstream(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    int _Prot = (int)ios_base::_Openprot);

explicit basic_ifstream(
    const wchar_t* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    int _Prot = (int)ios_base::_Openprot);

basic_ifstream(basic_ifstream&& right);

パラメーター

_Filename
開くファイルの名前。

_Mode
ios_base::openmode の列挙体の 1 つ。

_Prot
_fsopen_wfsopenshflag パラメーターと同等の、ファイルを開く際の既定の保護。

解説

最初のコンストラクターは、basic_istream(sb) を呼び出すことで基底クラスを初期化します。ここで、sb はクラス basic_filebuf<Elem, Tr> の格納されているオブジェクトです。 また、basic_filebuf<Elem, Tr> を呼び出すことで sb の初期化もします。

2 番目と 3 番目のコンストラクターは、basic_istream(sb) を呼び出すことで基底クラスを初期化します。 また、basic_filebuf<Elem, Tr> を呼び出し、続いて sb.open(_Filename, _Mode | ios_base::in) を呼び出すことで sb の初期化もします。 後者の関数が Null ポインターを返す場合、コンストラクターは setstate(failbit) を呼び出します。

4 番目のコンストラクターは、rvalue 参照として扱われる right のコンテンツでオブジェクトを初期化します。

詳細については、「basic_istream」、「basic_filebuf」、「setstate」、および「open」を参照してください。

次の例は、ファイルからテキストを読み取る方法を示しています。 ファイルを作成するには、 basic_ofstream::basic_ofstreamの例を参照してください。

// basic_ifstream_ctor.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    ifstream ifs("basic_ifstream_ctor.txt");
    if (!ifs.bad())
    {
        // Dump the contents of the file to cout.
        cout << ifs.rdbuf();
        ifs.close();
    }
}

basic_ifstream::close

ファイルを閉じます。

void close();

解説

メンバー関数は、 rdbuf -> closeを呼び出します。

close の使用例については、「basic_filebuf::close」を参照してください。

basic_ifstream::is_open

ファイルが開いているかどうかを判断します。

bool is_open() const;

戻り値

ファイルが開いている場合は true、それ以外の場合は false

解説

メンバー関数は、 rdbuf -> is_openを返します。

is_open の使用例については、「basic_filebuf::is_open」を参照してください。

basic_ifstream::open

ファイルを開きます。

void open(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    int _Prot = (int)ios_base::_Openprot);

void open(
    const char* _Filename,
    ios_base::openmode _Mode);

void open(
    const wchar_t* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    int _Prot = (int)ios_base::_Openprot);

void open(
    const wchar_t* _Filename,
    ios_base::openmode _Mode);

パラメーター

_Filename
開くファイルの名前。

_Mode
ios_base::openmode の列挙体の 1 つ。

_Prot
_fsopen_wfsopenshflag パラメーターと同等の、ファイルを開く際の既定の保護。

解説

メンバー関数は、rdbuf->open(_Filename, _Mode | ios_base::in) を呼び出します。 詳細については、次のトピックを参照してください。 rdbuf および basic_filebuf::open オープンに失敗すると、関数は ios_base::failure 例外をスローできる setstate(failbit) を呼び出します。 詳細については、setstateを参照してください。

open の使用例については、「basic_filebuf::open」を参照してください。

basic_ifstream::operator=

このストリーム オブジェクトの内容を割り当てます。 これは、rvalue が関係する移動代入で、コピーを残しません。

basic_ifstream& operator=(basic_ifstream&& right);

パラメーター

right
basic_ifstream オブジェクトへの rvalue 参照。

戻り値

*this を返します。

解説

メンバー演算子により、rvalue 参照として扱われる right の内容を使用して、オブジェクトの内容が置き換えられます。 詳細については、次のトピックを参照してください。 Lvalues および Rvalues

basic_ifstream::rdbuf

格納されたストリーム バッファーのアドレスを返します。

basic_filebuf<Elem, Tr> *rdbuf() const

戻り値

格納されているストリーム バッファーを表す basic_filebuf オブジェクトへのポインター。

rdbuf の使用例については、「basic_filebuf::close」を参照してください。

basic_ifstream::swap

2 つの basic_ifstream オブジェクトの内容を交換します。

void swap(basic_ifstream& right);

パラメーター

right
別のストリーム バッファーへの参照。

解説

このメンバー関数は、right の内容を、このオブジェクトの内容と交換します。

関連項目

C++ 標準ライブラリ内のスレッド セーフ
iostream プログラミング
iostreams の規則