描述物件,此物件會使用 類別 basic_filebuf的數據流緩衝區,<Elem
控制專案和編碼物件的插入和擷取, Tr
>其 Elem
字元特性是由 類別 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
>、 的物件。
注意
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 | 判斷檔案是否為開啟。 |
打開 | 開啟檔案。 |
rdbuf | 傳回預存資料流緩衝區的位址,類型為 basic_filebuf |
交換 | 將這個物件的內容與另一個 basic_fstream 物件的內容交換。 |
需求
Header:<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);
參數
_檔名
要開啟之檔案的名稱。
_模式
ios_base::openmode 中的其中一個列舉。
_波特
默認檔案開啟保護,相當於 _fsopen 中的shflag參數,_wfsopen。
備註
第一個建構函式會呼叫 basic_iostream(),其中 是類別basic_filebufsb
sb
的預存物件,以初始化基類。< 它也會藉由呼叫 sb
basic_filebuf
<、Tr 來初始化。>
第二個和第三個建構函式會藉由呼叫 basic_iostream
( sb) 初始化基底類別。 它也會藉由呼叫sb
basic_filebuf
<、Tr,然後 >open(_ Filename, _Mode
。 如果後者函式傳回 Null 指標,建構函式會呼叫 setstate(failbit
)。
第四個建構函式會使用視為右值參考的 right
內容初始化物件。
範例
basic_fstream::close
關閉檔案。
void close();
備註
成員函式會呼叫 rdbuf- > close。
範例
basic_fstream::is_open
判斷檔案是否為開啟。
bool is_open() const;
傳回值
若已開啟檔案,即為 true
;否則為 false
。
備註
範例
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);
參數
_檔名
要開啟之檔案的名稱。
_模式
ios_base::openmode 中的其中一個列舉。
_波特
默認檔案開啟保護,相當於 _fsopen 中的shflag參數,_wfsopen。
備註
成員函式會呼叫 rdbuf> open(_ Filename, 。 _Mode
如果該函式傳回 Null 指標,函式會呼叫 setstate(failbit
)。
範例
basic_fstream::operator=
將來自指定資料流物件的內容指派給此物件。 這是一個移動指派,涉及不會留下複本的 rvalue。
basic_fstream& operator=(basic_fstream&& right);
參數
右
basic_fstream
物件的 lvalue 參考。
傳回值
傳回 *this
。
備註
成員運算子會使用右的內容,將 對象的內容取代為右值參考。
basic_fstream::rdbuf
傳回預存數據流緩衝區的位址,類型指標指向 basic_filebuf<Elem, Tr。>
basic_filebuf<Elem, Tr> *rdbuf() const
傳回值
預存資料流緩衝區的位址。
範例
basic_fstream::swap
交換兩個 basic_fstream
物件的內容。
void swap(basic_fstream& right);
參數
右
lvalue
物件的 basic_fstream
參考。
備註
成員函式會交換這個物件的內容和右邊的內容。