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>
)。
备注
当将 basic_ofstream
的 wchar_t
专用化写入文件时,如果在文本模式下打开该文件,则它将编写 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
默认文件打开保护,等同于 _fsopen
、_wfsopen
中的 shflag
参数。
right
对 basic_ofstream
对象的右值引用用于初始化此 basic_ofstream
对象。
注解
第一个构造函数通过调用 basic_ostream(sb)
初始化基类,其中 sb
是 basic_filebuf< Elem, Tr>
类的存储对象。 它还可以通过调用 basic_filebuf
<Elem
, Tr
> 来初始化 sb
。
通过调用 basic_ostream( sb)
,第二个和第三个构造函数可初始化基类。 它还可以通过调用 basic_filebuf
<Elem
, Tr
>,然后 sb.open( _Filename, _Mode | ios_base::out)
来初始化 sb
。 如果后一个函数返回一个 NULL
指针,构造函数将调用 setstate(failbit)
。
第四个构造函数是一个 copy 函数。 它可以初始化具有 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
默认文件打开保护,等同于 _fsopen
、_wfsopen
中的 shflag
参数。
备注
此成员函数调用 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
内容替换该对象的内容,被视为右值引用。
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
的内容进行交换。