basic_ofstream クラス

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

構文

template <class Elem, class Tr = char_traits<Elem>>
class basic_ofstream : public basic_ostream<Elem, Tr>

パラメーター

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

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

解説

basic_ofstreamwchar_t で特殊化したクラスがファイルに書き込みを行う場合、ファイルがテキスト モードで開かれていると、MBCS シーケンスが書き込まれます。 内部表現には wchar_t 文字のバッファーが使用されます。

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

次の例では、basic_ofstream オブジェクトを作成して、これにテキストを書き込む方法を示します。

// basic_ofstream_class.cpp
// compile with: /EHsc
#include <fstream>

using namespace std;

int main(int argc, char **argv)
{
    ofstream ofs("ofstream.txt");
    if (!ofs.bad())
    {
        ofs << "Writing to a basic_ofstream object..." << endl;
        ofs.close();
    }
}

コンストラクター

コンストラクター 説明
basic_ofstream basic_ofstream 型のオブジェクトを作成します。

メンバー関数

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

演算子

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

必要条件

ヘッダー:<fstream>

名前空間std:

basic_ofstream::basic_ofstream

basic_ofstream 型のオブジェクトを作成します。

basic_ofstream();

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

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

basic_ofstream(
    basic_ofstream&& right);

パラメーター

_Filename
開くファイルの名前。

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

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

right
この basic_ofstream オブジェクトを初期化するために使用されている basic_ofstream オブジェクトへの右辺値参照。

解説

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

2 番目と 3 番目のコンストラクターは、basic_ostream( sb) を呼び出すことで基底クラスを初期化します。 また sb も、basic_filebuf<ElemTr> そして sb.open( _Filename, _Mode | ios_base::out) を呼び出すことで初期化します。 後者の関数から NULL ポインターが返されると、コンストラクターは setstate(failbit) を呼び出します。

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

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

次の例では、basic_ofstream オブジェクトを作成して、これにテキストを書き込む方法を示します。

// basic_ofstream_ctor.cpp
// compile with: /EHsc
#include <fstream>

using namespace std;

int main(int argc, char **argv)
{
    ofstream ofs("C:\\ofstream.txt");
    if (!ofs.bad())
    {
        ofs << "Writing to a basic_ofstream object..." << endl;
        ofs.close();
    }
}

basic_ofstream::close

ファイルを閉じます。

void close();

解説

メンバー関数は、rdbuf->close を呼び出します。 詳細については、次のトピックを参照してください。 rdbuf および close

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

basic_ofstream::is_open

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

bool is_open() const;

戻り値

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

解説

このメンバー関数は、rdbuf->is_open を返します。 詳細については、次のトピックを参照してください。 rdbuf および is_open

// basic_ofstream_is_open.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>

int main( )
{
   using namespace std;
   ifstream file;
   // Open and close with a basic_filebuf
   file.rdbuf( )->open( "basic_ofstream_is_open.txt", ios::in );
   file.close( );
   if (file.is_open())
      cout << "it's open" << endl;
   else
      cout << "it's closed" << endl;
}

basic_ofstream::open

ファイルを開きます。

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

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

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

basic_ofstream::operator=

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

basic_ofstream& operator=(basic_ofstream&& right);

パラメーター

right
basic_ofstream オブジェクトへの右辺値参照。

戻り値

*this を返します。

解説

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

basic_ofstream::rdbuf

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

basic_filebuf<Elem, Tr> *rdbuf() const

戻り値

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

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

basic_ofstream::swap

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

void swap(basic_ofstream& right);

パラメーター

right
別の basic_ofstream オブジェクトへの lvalue 参照です。

解説

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

関連項目

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