共用方式為


basic_ifstream 類別

描述對象,這個物件會控制從 類別 basic_filebuf<Elem, Tr>數據流緩衝區擷取項目和編碼物件,其 Elem字元特性是由 類別 Tr所決定。

如需詳細資訊,請參閱basic_filebuf

語法

template <class Elem, class Tr = char_traits<Elem>>
class basic_ifstream : public basic_istream<Elem, Tr>

參數

Elem
檔案緩衝區的基本項目。

Tr
檔案緩衝區基本元素的特性(通常是 char_traits<Elem>)。

備註

此物件會儲存類別 basic_filebuf<Elem, Tr> 的物件。

範例

下列範例示範如何在檔案的文字中讀取。

// basic_ifstream_class.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    ifstream ifs("basic_ifstream_class.txt");
    if (!ifs.bad())
    {
        // Dump the contents of the file to cout.
        cout << ifs.rdbuf();
        ifs.close();
    }
}

輸入: basic_ifstream_class.txt

This is the contents of basic_ifstream_class.txt.

輸出

This is the contents of basic_ifstream_class.txt.

建構函式

建構函式 描述
basic_ifstream 初始化 basic_ifstream 物件的新執行個體。

成員函式

成員函數 描述
close 關閉檔案。
is_open 判斷檔案是否為開啟。
open 開啟檔案。
rdbuf 傳回預存資料流緩衝區的位址。
swap 將此 basic_ifstream 的內容和提供的 basic_ifstream 內容交換。

操作員

運算子 描述
operator= 指派此資料流物件的內容。 這是一個移動指派,涉及 rvalue 不會留下複本的 。

需求

標頭: <fstream>

命名空間std

basic_ifstream::basic_ifstream

建構類型 basic_ifstream 的物件。

basic_ifstream();

explicit basic_ifstream(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    int _Prot = (int)ios_base::_Openprot);

explicit basic_ifstream(
    const wchar_t* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    int _Prot = (int)ios_base::_Openprot);

basic_ifstream(basic_ifstream&& right);

參數

_Filename
要開啟之檔案的名稱。

_Mode
中的 ios_base::openmode其中一個列舉。

_Prot
默認檔案開啟保護,相當於 shflag 中的 _wfsopen_fsopen參數。

備註

第一個建構函式會呼叫 basic_istream(sb)來初始化基類,其中 sb 是 類別 basic_filebuf<Elem, Tr>的預存物件。 它也會藉由呼叫 basic_filebuf<Elem, Tr>來初始化sb

第二個和第三個建構函式會呼叫 basic_istream(sb)來初始化基類。 它也會藉由呼叫 basic_filebuf<Elem, Tr>,然後sb.open(_Filename, _Mode | ios_base::in)初始化 sb 。 如果後者函式傳回 Null 指標,建構函式會呼叫 setstate(failbit)

第四個建構函式會使用 視為rvalue參考的內容right,初始化 物件。

如需詳細資訊,請參閱basic_istream, basic_filebuf, setstateopen.

範例

下列範例示範如何在檔案的文字中讀取。 若要建立檔案,請參閱 的 basic_ofstream::basic_ofstream範例。

// basic_ifstream_ctor.cpp
// compile with: /EHsc

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
    ifstream ifs("basic_ifstream_ctor.txt");
    if (!ifs.bad())
    {
        // Dump the contents of the file to cout.
        cout << ifs.rdbuf();
        ifs.close();
    }
}

basic_ifstream::close

關閉檔案。

void close();

備註

成員函式會呼叫 rdbuf -> close

範例

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

basic_ifstream::is_open

判斷檔案是否為開啟。

bool is_open() const;

傳回值

若已開啟檔案,即為 true;否則為 false

備註

成員函式會傳rdbuf回 -> is_open

範例

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

basic_ifstream::open

開啟檔案。

void open(
    const char* _Filename,
    ios_base::openmode _Mode = ios_base::in,
    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,
    int _Prot = (int)ios_base::_Openprot);

void open(
    const wchar_t* _Filename,
    ios_base::openmode _Mode);

參數

_Filename
要開啟之檔案的名稱。

_Mode
中的 ios_base::openmode其中一個列舉。

_Prot
默認檔案開啟保護,相當於 shflag 中的 _wfsopen_fsopen參數。

備註

成員函式會呼叫 rdbuf->open(_Filename, _Mode | ios_base::in)。 如需詳細資訊,請參閱 rdbufbasic_filebuf::open。 如果開啟失敗,函式會呼叫 setstate(failbit),這可能會擲回 ios_base::failure 例外狀況。 如需詳細資訊,請參閱setstate

範例

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

basic_ifstream::operator=

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

basic_ifstream& operator=(basic_ifstream&& right);

參數

right
basic_ifstream 物件的 rvalue 參考。

傳回值

傳回 *this

備註

成員運算子會使用 視為參考的內容來取代 對象的內容rightrvalue。 如需詳細資訊,請參閱 LvaluesRvalues

basic_ifstream::rdbuf

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

basic_filebuf<Elem, Tr> *rdbuf() const

傳回值

物件的指標 basic_filebuf ,表示儲存的數據流緩衝區。

範例

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

basic_ifstream::swap

交換兩個 basic_ifstream 物件的內容。

void swap(basic_ifstream& right);

參數

right
對另一個資料流緩衝區的參考。

備註

成員函式會將此物件的內容與 right 的內容交換。

另請參閱

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