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_ofstream
を wchar_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
、_wfsopen
の shflag
パラメーターと同等の、ファイルを開く際の既定の保護。
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
<Elem
、Tr
> そして sb.open( _Filename, _Mode | ios_base::out)
を呼び出すことで初期化します。 後者の関数から NULL
ポインターが返されると、コンストラクターは setstate(failbit)
を呼び出します。
4 番目のコンストラクターは、copy 関数です。 これは、右辺値参照として扱われる right
のコンテンツでオブジェクトを初期化します。
詳細については、「basic_ostream
「open
および「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
、_wfsopen
の shflag
パラメーターと同等の、ファイルを開く際の既定の保護。
解説
メンバー関数は、rdbuf -> open(_ Filename, _Mode | ios_base::out)
を呼び出します。 その関数から NULL
ポインターが返されると、関数は setstate(failbit)
を呼び出します。
詳細については、「rdbuf
「open
および「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
の規則