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
でない場合にのみ提供される。
(C++17以降)
目次 |
パラメータ
| filename | - | 開くファイルの名前 | ||||||||||||||||
| mode | - |
ストリームのオープンモードを指定します。これは
BitmaskType
であり、以下の定数が定義されています:
|
例
#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++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 22 | C++98 | 正常なopen時のエラー状態の変化が不明確 | エラー状態は変更されない |
| LWG 409 | C++98 | 正常なopen時にエラー状態が変更されなかった | クリアされる [1] |
| LWG 460 | C++98 |
オーバーロード
(1)
の
mode
のデフォルト引数が
欠落していた( 概要 には存在) |
追加された |
- ↑ LWG issue #22 の解決は上書きされます。
関連項目
|
ストリームに関連付けられたファイルがあるかどうかをチェックする
(公開メンバ関数) |
|
|
関連付けられたファイルを閉じる
(公開メンバ関数) |
|
|
ファイルを開き、関連付けられた文字シーケンスとして設定する
(
std::basic_filebuf<CharT,Traits>
の公開メンバ関数)
|