次の方法で共有


basic_fstream クラス

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

構文

template <class Elem, class Tr = char_traits<Elem>>
class basic_fstream : public basic_iostream<Elem, Tr>

パラメーター

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

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

解説

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

Note

fstream オブジェクトの get ポインターおよび put ポインターは、互いに独立したポインターではありません。 get ポインターが移動すると、put ポインターも移動します。

次の例で、読み取りと書き込みが可能な basic_fstream オブジェクトの作成方法を示します。

// basic_fstream_class.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    fstream fs("fstream.txt", ios::in | ios::out | ios::trunc);
    if (!fs.bad())
    {
        // Write to the file.
        fs << "Writing to a basic_fstream object..." << endl;
        fs.close();

        // Dump the contents of the file to cout.
        fs.open("fstream.txt", ios::in);
        cout << fs.rdbuf();
        fs.close();
    }
}
Writing to a basic_fstream object...

コンストラクター

コンストラクター 説明
basic_fstream basic_fstream 型のオブジェクトを構築します。

メンバー関数

メンバー関数 説明
閉じる ファイルを閉じます。
is_open ファイルが開いているかどうかを判断します。
open ファイルを開きます。
rdbuf pointer 型の格納されたストリーム バッファーのアドレスを basic_filebuf<Elem, Tr> に返します。
スワップ このオブジェクトの内容を別の basic_fstream オブジェクトの内容と交換します。

要件

ヘッダー:<fstream>

名前空間: std

basic_fstream::basic_fstream

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

basic_fstream();

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

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

basic_fstream(basic_fstream&& right);

パラメーター

_Filename
開くファイルの名前。

_Mode
ios_base::openmode の列挙値のうちの 1 つ。

_Prot
_fsopen, _wfsopenshflag パラメーターと同等の既定のファイル保護。

解説

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

2 番目と 3 番目のコンストラクターは、basic_iostream( sb) を呼び出すことで基底クラスを初期化します。 また、basic_filebuf<Elem, Tr> を呼び出し、次に sb.open(_ Filename, _Mode) を呼び出すことで sb を初期化します。 後者の関数が Null ポインターを返す場合、コンストラクターは setstate(failbit) を呼び出します。

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

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

basic_fstream::close

ファイルを閉じます。

void close();

解説

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

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

basic_fstream::is_open

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

bool is_open() const;

戻り値

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

解説

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

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

basic_fstream::open

ファイルを開きます。

void open(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in | ios_base::out,
    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 | ios_base::out,
    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) を呼び出します。 その関数が Null ポインターを返す場合、関数は setstate( failbit) を呼び出します。

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

basic_fstream::operator=

指定したストリーム オブジェクトからコンテンツをこのオブジェクトに割り当てます。 これは、コピーを残さない右辺値を伴う移動代入です。

basic_fstream& operator=(basic_fstream&& right);

パラメーター

right
basic_fstream オブジェクトへの左辺値参照。

戻り値

*this を返します。

解説

メンバー演算子により、右辺値の参照として扱われる right の内容を使用して、オブジェクトの内容が置き換えられます。

basic_fstream::rdbuf

pointer 型の格納されたストリーム バッファーのアドレスを basic_filebuf<Elem, Tr> に返します。

basic_filebuf<Elem, Tr> *rdbuf() const

戻り値

格納されたストリーム バッファーのアドレス。

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

basic_fstream::swap

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

void swap(basic_fstream& right);

パラメーター

right
basic_fstream オブジェクトへの lvalue 参照。

解説

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

関連項目

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