1. ホーム
  2. c++

[解決済み] C++でファイルの内容を文字列に読み込む [重複].

2023-01-05 12:31:16

質問

重複の可能性があります。

c + +でstd::stringにファイルをスル-するための最良の方法は何ですか?

Perlなどのスクリプト言語では、ファイルを一発で変数に読み込むことが可能です。

    open(FILEHANDLE,$file);
    $content=<FILEHANDLE>;

C++でこれを行うには、最も効率的な方法は何でしょうか?

どのように解決するのですか?

このように

#include <fstream>
#include <string>

int main(int argc, char** argv)
{

  std::ifstream ifs("myfile.txt");
  std::string content( (std::istreambuf_iterator<char>(ifs) ),
                       (std::istreambuf_iterator<char>()    ) );

  return 0;
}

ステートメント

  std::string content( (std::istreambuf_iterator<char>(ifs) ),
                       (std::istreambuf_iterator<char>()    ) );

を分割することができます。

std::string content;
content.assign( (std::istreambuf_iterator<char>(ifs) ),
                (std::istreambuf_iterator<char>()    ) );

は、既存のstd::string変数の値をただ上書きしたい場合に便利です。