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
, setstate
和open
.
範例
下列範例示範如何在檔案的文字中讀取。 若要建立檔案,請參閱 的 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();
備註
範例
如需使用 close
的範例,請參閱 basic_filebuf::close
。
basic_ifstream::is_open
判斷檔案是否為開啟。
bool is_open() const;
傳回值
若已開啟檔案,即為 true
;否則為 false
。
備註
範例
如需使用 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)
。 如需詳細資訊,請參閱 rdbuf
和 basic_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
。
備註
成員運算子會使用 視為參考的內容來取代 對象的內容right
rvalue
。 如需詳細資訊,請參閱 Lvalues
和 Rvalues
。
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
的內容交換。