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, _wfsopen の shflag パラメーターと同等の既定のファイル保護。
解説
最初のコンストラクターは、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, _wfsopen の shflag パラメーターと同等の既定のファイル保護。
解説
このメンバー関数は、 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 の内容を交換します。