开放模式

创建文件流时,你可以指定打开模式。打开模式基本上是用于控制流打开文件的方式的设置。

(所有模式都可以在 std::ios 名称空间中找到。)

可以将打开模式作为第二个参数提供给文件流的构造函数或其 open() 成员函数:

std::ofstream os("foo.txt", std::ios::out | std::ios::trunc);

std::ifstream is;
is.open("foo.txt", std::ios::in | std::ios::binary);

需要注意的是,如果要设置其他标志,则必须设置 ios::inios::out,因为它们不是由 iostream 成员隐式设置的,尽管它们具有正确的默认值。

如果未指定打开模式,则使用以下默认模式:

  • ifstream - in
  • ofstream - out
  • fstream - inout

你可以通过设计指定的文件打开模式是:

模式 含义 对于 描述
app 附加 输出 在文件末尾追加数据。
binary 二进制 输入输出 输入和输出以二进制形式完成。
in 输入 输入 打开文件进行读取。
out 输出 输出 打开文件进行写入。
trunc 截短 输入输出 打开时删除文件的内容。
ate 最后 输入 打开时转到文件末尾。

注意: 设置 binary 模式可以按原样读/写数据; 不设置它可以将换行符'\n'字符转换为平台特定的行结束序列。

例如,在 Windows 上,行结束序列是 CRLF(\r\n)。
写:\n => \r\n
阅读:\r\n => \n