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