public member function
<fstream>

std::basic_ofstream::basic_ofstream

默认 (1)
basic_ofstream();
initialization (2)
explicit basic_ofstream (const char* filename,                         ios_base::openmode mode = ios_base::out);
默认 (1)
basic_ofstream();
initialization (2)
explicit basic_ofstream (const char* filename,                         ios_base::openmode mode = ios_base::out);explicit basic_ofstream (const string& filename,                         ios_base::openmode mode = ios_base::out);
copy (3)
basic_ofstream (const basic_ofstream&) = delete;
move (4)
basic_ofstream (basic_ofstream&& x);
构造对象
构造一个basic_ofstream对象

(1) 默认构造函数
构造一个未与任何文件关联的basic_ofstream对象。
在内部,其basic_ostream基构造函数接收一个指向新构造的basic_filebuf对象(内部文件流缓冲区)的指针。
(2) 初始化构造函数
构造一个basic_ofstream对象,它最初与由第一个参数(filename)标识的文件关联,并以mode指定的模式打开。
在内部,其basic_ostream基构造函数接收一个指向新构造的basic_filebuf对象(内部文件流缓冲区)的指针。然后,调用basic_filebuf::open并以filenamemode作为参数。
如果文件无法打开,则设置流的failbit标志。
(3) 复制构造函数 (已删除)
已删除 (无复制构造函数)。
(4) 移动构造函数
获取 x 的内容。
首先,该函数将它的基basic_ostream类从x移动构造,并将x的内部basic_filebuf对象移动构造为basic_filebuf对象,然后通过调用成员set_rdbuf将它们关联起来。
x 处于未指定但有效的状态。
basic_filebuf对象的内部持续时间至少与basic_ofstream对象相同。

参数

filename
代表要打开的文件名的字符串。
有关其格式和有效性的具体说明取决于库实现和运行环境。
mode
描述文件请求的输入/输出模式的标志。
这是一个位掩码成员类型 openmode 的对象,由以下成员常量的组合构成:
成员常量代表access
in输入文件以读模式打开:内部流缓冲区支持输入操作。
下可用的类型 *输出文件以写模式打开:内部流缓冲区支持输出操作。
binarybinary操作以二进制模式执行,而非文本模式。
ate在末尾输出位置从文件末尾开始。
appappend (追加)所有输出操作都在文件末尾进行,追加到其现有内容。
trunctruncate (截断)文件打开前存在的任何内容都将被丢弃。
这些标志可以通过按位或运算符(|)组合。
* 对于basic_ofstream对象,out始终被设置(即使在参数mode中显式未设置)。
请注意,尽管basic_ofstream是一个输出流,但其内部basic_filebuf对象可能被设置为也支持输入操作。

如果模式同时设置了 truncapp,则打开操作失败。如果同时设置了 appin,也会失败。
如果模式同时设置了 truncapp,则打开操作失败。
x
一个相同类型的basic_ofstream对象(具有相同的类模板参数charTtraits),其值被移动。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
// ofstream constructor.
#include <fstream>      // std::ofstream

int main () {

  std::ofstream ofs ("test.txt", std::ofstream::out);

  ofs << "lorem ipsum";

  ofs.close();

  return 0;
}

数据竞争

移动构造函数 (4) 会修改 x

异常安全

-

另见