分享方式:


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_traitsElem<>)。

備註

物件會儲存 類別basic_filebufElemTr<>、 的物件。

注意

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 ElemTr>,然後 sb 來初始化。 sbopen(_ Filename_Mode。 如果後者函式傳回 Null 指標,建構函式會呼叫 setstatefailbit)。

第四個建構函式會使用視為右值參考的 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);

參數

_檔名
要開啟之檔案的名稱。

_模式
ios_base::openmode 中的其中一個列舉。

_波特
默認檔案開啟保護,相當於 _fsopen 中的shflag參數,_wfsopen

備註

成員函式會呼叫 rdbuf -> open(_ Filename, 。 _Mode 如果函式傳回 Null 指標函式會呼叫 setstatefailbit

範例

如需如何使用 open的範例,請參閱 basic_filebuf::open

basic_fstream::operator=

將來自指定資料流物件的內容指派給此物件。 這是一個移動指派,涉及不會留下複本的 rvalue。

basic_fstream& operator=(basic_fstream&& right);

參數

right
basic_fstream 物件的 lvalue 參考。

傳回值

傳回 *this

備註

成員運算子會使用右的內容,將 對象的內容取代為右值參考。

basic_fstream::rdbuf

傳回預存數據流緩衝區的位址,類型指標指向 basic_filebuf<ElemTr。>

basic_filebuf<Elem, Tr> *rdbuf() const

傳回值

預存資料流緩衝區的位址。

範例

如需如何使用 rdbuf 的範例,請參閱 basic_filebuf::close

basic_fstream::swap

交換兩個 basic_fstream 物件的內容。

void swap(basic_fstream& right);

參數

right
basic_fstream 物件的 lvalue 參考。

備註

成員函式會交換這個物件的內容和右邊的內容

另請參閱

C++ 標準程式庫中的執行緒安全
iostream 程式設計
iostreams 慣例