建議使用 Visual Studio 2017

basic_ifstream 類別

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

描述控制的項目擷取的物件,以及從資料流緩衝區,類別的編碼的物件basic_filebuf< ElemTr>,類型的項目與Elem,其字元特性由類別Tr

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

參數

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

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

物件會儲存類別的物件basic_filebuf < ElemTr>。

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

// 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();  
    }  
}  

This is the contents of basic_ifstream_class.txt.  

This is the contents of basic_ifstream_class.txt.  

建構函式

basic_ifstream初始化 basic_ifstream 物件的新執行個體。

成員函式

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

運算子

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

標頭︰<>>

命名空間: std

建構類型 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中的參數_fsopen、 _wfsopen

備註

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

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

第四個建構函式初始化物件的內容right,視為右值參考。

範例

下列範例示範如何在檔案的文字中讀取。 若要建立檔案,請參閱範例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();  
    }  
}  

關閉檔案。

void close();

備註

成員函式呼叫rdbuf ** -> ** 關閉

範例

請參閱basic_filebuf:: close的範例會使用關閉

判斷檔案是否為開啟。

bool is_open() const;

傳回值

true檔案開啟時,如果false否則。

備註

成員函式傳回rdbuf ** -> ** is_open

範例

請參閱basic_filebuf:: is_open的範例會使用is_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中的參數_fsopen、 _wfsopen

備註

The member function calls rdbuf -> open(_ Filename, _Mode |ios_base::in). 如果開啟失敗,函式呼叫setstate( failbit),這可能會擲回例外狀況 ios_base:: failure。

範例

請參閱basic_filebuf:: open的範例會使用開啟

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

basic_ifstream& operator=(basic_ifstream&& right);

參數

right
basic_ifstream 物件的右值參考。

傳回值

傳回 *this

備註

成員運算子會使用 right 的內容 (被視為 rvalue 參考) 來取代物件的內容。 如需詳細資訊,請參閱Lvalues 和 Rvalues

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

basic_filebuf<Elem, Tr> *rdbuf() const 

傳回值

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

範例

請參閱basic_filebuf:: close的範例會使用rdbuf

交換兩個 basic_ifstream 物件的內容。

void swap(basic_ifstream& right);

參數

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

備註

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

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

顯示: