名前空間
変種
操作

std::basic_ifstream::basic_ifstream

提供: cppreference.com
< cpp‎ | io‎ | basic ifstream
 
 
 
 
basic_ifstream();
(1)
explicit basic_ifstream( const char* filename,
                std::ios_base::openmode mode = ios_base::in );
(2)
explicit basic_ifstream( const std::filesystem::path::value_type* filename,
                std::ios_base::openmode mode = ios_base::in );
(3) (C++17およびそれ以降)
explicit basic_ifstream( const std::string& filename,
                std::ios_base::openmode mode = ios_base::in );
(4) (C++11およびそれ以降)
explicit basic_ifstream( const std::filesystem::path& filename,
                std::ios_base::openmode mode = ios_base::in );
(5) (C++17およびそれ以降)
basic_ifstream( basic_ifstream&& other );
(6) (C++11およびそれ以降)
basic_ifstream( const basic_ifstream& rhs) = delete;
(7) (C++11およびそれ以降)

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

1) デフォルトコンストラクタ。 ファイルと紐付けられていないストリームを構築します。 std::basic_filebuf をデフォルト構築し、このデフォルト構築された std::basic_filebuf メンバへのポインタを使用して基底を構築します。
2-3) まず、デフォルトコンストラクタと同じステップを行います。 その後、 rdbuf()->open(filename, mode | std::ios_base::in) を呼ぶことによって、ストリームをファイルと紐付けます (呼び出しの効果の詳細は std::basic_filebuf::open を参照してください)。 open() の呼び出しがヌルポインタを返した場合は、 setstate(failbit) をセットします。 オーバーロード (3) は、 std::filesystem::path::value_typechar でない場合にのみ提供されます。 (C++17およびそれ以降)
4-5) basic_ifstream(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::ifstream f0;
    std::ifstream f1("test.bin", std::ios::binary);
    std::string name = "example.txt";
    std::ifstream f2(name);
    std::ifstream f3(std::move(f1));
}


[編集] 関連項目

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