开放模式
创建文件流时,你可以指定打开模式。打开模式基本上是用于控制流打开文件的方式的设置。
(所有模式都可以在 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::in
或 ios::out
,因为它们不是由 iostream 成员隐式设置的,尽管它们具有正确的默认值。
如果未指定打开模式,则使用以下默认模式:
ifstream
-in
ofstream
-out
fstream
-in
和out
你可以通过设计指定的文件打开模式是:
模式 | 含义 | 对于 | 描述 |
---|---|---|---|
app |
附加 | 输出 | 在文件末尾追加数据。 |
binary |
二进制 | 输入输出 | 输入和输出以二进制形式完成。 |
in |
输入 | 输入 | 打开文件进行读取。 |
out |
输出 | 输出 | 打开文件进行写入。 |
trunc |
截短 | 输入输出 | 打开时删除文件的内容。 |
ate |
最后 | 输入 | 打开时转到文件末尾。 |
注意: 设置 binary
模式可以按原样读/写数据; 不设置它可以将换行符'\n'
字符转换为平台特定的行结束序列。
例如,在 Windows 上,行结束序列是 CRLF(\r\n
)。
写:\n
=> \r\n
阅读:\r\n
=> \n