名前空間
変種
操作

std::basic_fstream::basic_fstream

提供: cppreference.com
< cpp‎ | io‎ | basic fstream
 
 
入出力ライブラリ
入出力マニピュレータ
Cスタイルの入出力
バッファ
(C++98で非推奨)
ストリーム
抽象
ファイル入出力
文字列入出力
配列入出力
(C++98で非推奨)
(C++98で非推奨)
(C++98で非推奨)
同期化出力
エラーカテゴリインタフェース
(C++11)
 
 
basic_fstream();
(1)
explicit basic_fstream( const char* filename,
               std::ios_base::openmode mode = ios_base::in|ios_base::out );
(2)
explicit basic_fstream( const std::filesystem::path::value_type* filename,
               std::ios_base::openmode mode = ios_base::in|ios_base::out );
(3) (C++17以上)
explicit basic_fstream( const std::string& filename,
               std::ios_base::openmode mode = ios_base::in|ios_base::out );
(4) (C++11以上)
explicit basic_fstream( const std::filesystem::path& filename,
               std::ios_base::openmode mode = ios_base::in|ios_base::out );
(5) (C++17以上)
basic_fstream( basic_fstream&& other );
(6) (C++11以上)
basic_fstream( const basic_fstream& rhs) = delete;
(7) (C++11以上)

新しいファイルストリームを構築します。

1) デフォルトコンストラクタ。 ファイルと紐付けられていないストリームを構築します。 std::basic_filebuf をデフォルト構築し、このデフォルト構築された std::basic_filebuf メンバへのポインタを使用して基底を構築します。
2-3) まず、デフォルトコンストラクタと同じステップを行います。 その後、 rdbuf()->open(filename, mode) を呼ぶことによって、ストリームをファイルと紐付けます (呼び出しの効果の詳細は std::basic_filebuf::open を参照してください)。 open() の呼び出しがヌルポインタを返した場合は、 setstate(failbit) をセットします。 オーバーロード (3) は、 std::filesystem::path::value_typechar でない場合にのみ提供されます。 (C++17以上)
4-5) basic_fstream(filename.c_str(), mode) と同じです。
6) ムーブコンストラクタ。 まず、 other から基底クラスをムーブ構築し (これは rdbuf() のポインタに影響を与えません)、その後、 std::basic_filebuf をムーブ構築し、その後、基底クラスの rdbuf() ポインタとして新しい basic_filebuf を設定するために this->set_rdbuf() を呼びます。
7) コピーコンストラクタは削除されています。 このクラスはコピー可能ではありません。

[編集] 引数

filename - 開くファイルの名前
mode - ストリームのオープンモードを指定します。 以下の定数が定義されています。
定数 説明
app 各書き込み前にストリームの終端へシークします
binary バイナリモードで開きます
in 読み込み用に開きます
out 書き込み用に開きます
trunc 開くときにストリームの内容を破棄します
ate 開いた直後にストリームの終端へシークします
other - ソースとして使用する別のファイルストリーム

[編集]

#include <fstream>
#include <utility>
#include <string>
int main()
{
    std::fstream f0;
    std::fstream f1("test.bin", std::ios::binary);
    std::string name = "example.txt";
    std::fstream f2(name);
    std::fstream f3(std::move(f1));
}


[編集] 関連項目

ファイルを開き、それをストリームと紐付けます
(パブリックメンバ関数) [edit]
ファイルを開き、それを文字シーケンスとして紐付けます
(std::basic_filebufのパブリックメンバ関数) [edit]
エラー状態をクリアせずに rdbuf を置き換えます
(プロテクテッドメンバ関数) [edit]
オブジェクトを構築します
(std::basic_iostreamのパブリックメンバ関数) [edit]