std::basic_fstream<CharT,Traits>:: open
|
void
open
(
const
char
*
filename,
std::
ios_base
::
openmode
mode
|
(1) | |
|
void
open
(
const
std
::
filesystem
::
path
::
value_type
*
filename,
std::
ios_base
::
openmode
mode
|
(2) | (自 C++17 起) |
|
void
open
(
const
std::
string
&
filename,
std::
ios_base
::
openmode
mode
|
(3) | (自 C++11 起) |
|
void
open
(
const
std::
filesystem
::
path
&
filename,
std::
ios_base
::
openmode
mode
|
(4) | (自 C++17 起) |
打开并将名为 filename 的文件与文件流关联。
成功时调用 clear ( ) 。失败时调用 setstate ( failbit ) 。
std::filesystem::path::value_type
不是
char
时,才提供重载
(2)
。
(C++17 起)
目录 |
参数
| filename | - | 要打开的文件名 | ||||||||||||||||
| mode | - |
指定流打开模式。它是
位掩码类型
,定义了以下常量:
|
示例
#include <fstream> #include <iostream> #include <string> int main() { std::string filename = "example.123"; std::fstream fs; fs.open(filename); if (!fs.is_open()) { fs.clear(); fs.open(filename, std::ios::out); // 创建文件 fs.close(); fs.open(filename); } std::cout << std::boolalpha; std::cout << "fs.is_open() = " << fs.is_open() << '\n'; std::cout << "fs.good() = " << fs.good() << '\n'; }
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用标准 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 22 | C++98 | 成功打开时错误状态的变化方式不明确 | 错误状态保持不变 |
| LWG 409 | C++98 | 成功打开时错误状态保持不变 | 错误状态被清除 [1] |
| LWG 460 | C++98 |
重载
(1)
中
mode
的默认参数缺失
(在 概要 中存在该参数) |
已添加 |
- ↑ LWG 议题 #22 的决议已被覆盖。
参见
|
检查流是否有关联文件
(公开成员函数) |
|
|
关闭关联文件
(公开成员函数) |
|
|
打开文件并将其配置为关联字符序列
(
std::basic_filebuf<CharT,Traits>
的公开成员函数)
|