std::basic_fstream<CharT,Traits>::open
< cpp | io | basic fstream
void open( const char *filename, ios_base::openmode mode = ios_base::in|ios_base::out ); |
(1) | |
void open( const std::filesystem::path::value_type *filename, ios_base::openmode mode = ios_base::in|ios_base::out ); |
(2) | (C++17 起) |
void open( const std::string &filename, ios_base::openmode mode = ios_base::in|ios_base::out ); |
(3) | (C++11 起) |
void open( const std::filesystem::path &filename, ios_base::openmode mode = ios_base::in|ios_base::out ); |
(4) | (C++17 起) |
将名为 filename
的文件打开并与文件流关联。
失败时调用 setstate(failbit) 。
成功时调用 clear() 。 | (C++11 起) |
1-2) 等效地调用 rdbuf()->open(filename, mode). (该调用效果上的细节见 std::basic_filebuf::open )。仅若 std::filesystem::path::value_type 非 char 才提供重载 (2) 。 (C++17 起)
3-4) 等效地调用 (1-2) ,如同以 open(filename.c_str(), mode) 。
参数
filename | - | 要打开的文件名 | ||||||||||||||||
mode | - | 指定打开模式。它是位掩码类型,定义下列常量:
|
返回值
(无)
示例
运行此代码
#include <string> #include <fstream> #include <iostream> 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'; }
参阅
检查流是否有关联文件 (公开成员函数) | |
关闭关联文件 (公开成员函数) | |
打开文件并配置它为关联字符序列 ( std::basic_filebuf<CharT,Traits> 的公开成员函数) |