basic_ofstream
類別
描述物件,控制將專案和編碼物件插入 類別 basic_filebuf< Elem, Tr>
的數據流緩衝區,其 Elem
字元特性是由 類別 Tr
所決定。 如需詳細資訊,請參閱basic_filebuf
。
語法
template <class Elem, class Tr = char_traits<Elem>>
class basic_ofstream : public basic_ostream<Elem, Tr>
參數
Elem
檔案緩衝區的基本項目。
Tr
檔案緩衝區基本元素的特性(通常是 char_traits<Elem>
)。
備註
當 wchar_t
寫入檔案的 basic_ofstream
特製化時,如果檔案以文字模式開啟,則會寫入 MBCS 序列。 此內部表示法將使用 wchar_t
字元的緩衝區。
此物件會儲存類別 basic_filebuf< Elem, Tr>
的物件。
範例
下列範例會示範如何建立 basic_ofstream
物件並寫入文字。
// basic_ofstream_class.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;
int main(int argc, char **argv)
{
ofstream ofs("ofstream.txt");
if (!ofs.bad())
{
ofs << "Writing to a basic_ofstream object..." << endl;
ofs.close();
}
}
建構函式
建構函式 | 描述 |
---|---|
basic_ofstream |
建立 basic_ofstream 類型的物件。 |
成員函式
成員函數 | 描述 |
---|---|
close |
關閉檔案。 |
is_open |
判斷檔案是否為開啟。 |
open |
開啟檔案。 |
rdbuf |
傳回預存資料流緩衝區的位址。 |
swap |
將這個 basic_ofstream 的內容和提供的 basic_ofstream 內容交換。 |
操作員
運算子 | 描述 |
---|---|
operator= |
指派此資料流物件的內容。 這是一個移動指派,涉及 rvalue reference 不會留下複本的 。 |
需求
標頭: <fstream>
命名空間:std
basic_ofstream::basic_ofstream
建立 basic_ofstream
類型的物件。
basic_ofstream();
explicit basic_ofstream(
const char* _Filename,
ios_base::openmode _Mode = ios_base::out,
int _Prot = (int)ios_base::_Openprot);
explicit basic_ofstream(
const wchar_t* _Filename,
ios_base::openmode _Mode = ios_base::out,
int _Prot = (int)ios_base::_Openprot);
basic_ofstream(
basic_ofstream&& right);
參數
_Filename
要開啟之檔案的名稱。
_Mode
中的 ios_base::openmode
其中一個列舉。
_Prot
默認檔案開啟保護,相當於 shflag
中的 _wfsopen
_fsopen
參數。
right
正在用來初始化此 basic_ofstream
物件之 basic_ofstream
物件的右值參考。
備註
第一個建構函式會呼叫 basic_ostream(sb)
來初始化基類,其中 sb
是 類別 basic_filebuf< Elem, Tr>
的預存物件。 它也會藉由呼叫Elem
basic_filebuf
<、>Tr
來初始化。sb
第二個和第三個建構函式會呼叫 basic_ostream( sb)
來初始化基類。 它也會藉由呼叫<basic_filebuf
Elem
,Tr
>然後sb.open( _Filename, _Mode | ios_base::out)
初始化 。sb
如果後者函式傳 NULL
回指標,建構函式會呼叫 setstate(failbit)
。
第四個建構函式是複製函式。 它會使用視為右值參考的 right
內容初始化物件。
如需詳細資訊,請參閱basic_ostream
、open
及 setstate
。
範例
下列範例會示範如何建立 basic_ofstream
物件並寫入文字。
// basic_ofstream_ctor.cpp
// compile with: /EHsc
#include <fstream>
using namespace std;
int main(int argc, char **argv)
{
ofstream ofs("C:\\ofstream.txt");
if (!ofs.bad())
{
ofs << "Writing to a basic_ofstream object..." << endl;
ofs.close();
}
}
basic_ofstream::close
關閉檔案。
void close();
備註
成員函式會呼叫 rdbuf->close
。 如需詳細資訊,請參閱 rdbuf
和 close
。
範例
如需使用 close
的範例,請參閱 basic_filebuf::close
。
basic_ofstream::is_open
指出檔案是否為開啟。
bool is_open() const;
傳回值
若已開啟檔案,即為 true
;否則為 false
。
備註
此成員函式會傳回 rdbuf->is_open
。 如需詳細資訊,請參閱 rdbuf
和 is_open
。
範例
// basic_ofstream_is_open.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>
int main( )
{
using namespace std;
ifstream file;
// Open and close with a basic_filebuf
file.rdbuf( )->open( "basic_ofstream_is_open.txt", ios::in );
file.close( );
if (file.is_open())
cout << "it's open" << endl;
else
cout << "it's closed" << endl;
}
basic_ofstream::open
開啟檔案。
void open(
const char* _Filename,
ios_base::openmode _Mode = 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::out,
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::out)
。 如果函式傳 NULL
回指標函式會呼叫 setstate(failbit)
。
如需詳細資訊,請參閱rdbuf
、open
及 setstate
。
範例
如需使用 open
的範例,請參閱 basic_filebuf::open
。
basic_ofstream::operator=
指派此資料流物件的內容。 這是一個移動指派,涉及 rvalue reference
不會留下複本的 。
basic_ofstream& operator=(basic_ofstream&& right);
參數
right
basic_ofstream
物件的右值參考。
傳回值
傳回 *this
。
備註
成員運算子會使用 right
的內容 (被視為 rvalue 參考) 來取代物件的內容。
basic_ofstream::rdbuf
傳回預存資料流緩衝區的位址。
basic_filebuf<Elem, Tr> *rdbuf() const
傳回值
傳回預存資料流緩衝區的位址。
範例
如需使用 rdbuf
的範例,請參閱 basic_filebuf::close
。
basic_ofstream::swap
交換兩個 basic_ofstream
物件的內容。
void swap(basic_ofstream& right);
參數
right
對其他 basic_ofstream
物件的 lvalue
參考。
備註
成員函式會將此物件的內容與 right
的內容交換。