0

重複の可能性:
c++ でファイルを std::string に丸呑みする最良の方法は何ですか?

テキスト ファイル全体を文字列として保存しようとしていますが、テキスト ファイルに含まれる任意の文字数を動的に保存するにはどうすればよいですか?

4

2 に答える 2

9

C++ 標準ライブラリは、std::string動的にサイズ変更される文字列の型を提供します。のtypedefですstd::basic_string<char>。cppreference.comに役立つリファレンスがあります。

ファイルから に行を読み込むにはstd::string、 を参照してくださいstd::getline。次のように、ファイルから行を取得するために使用できます。

std::string str;
std::getline(file_stream, str);

std::getlineストリーム ( によって返されます) をチェックして、すべてが正常に行われたかどうかを確認してください。これはしばしばループで行われます。

while (std::getline(file_stream, str)) {
  // Use str
}
于 2012-11-05T22:07:35.310 に答える
4

sftrabbitの答えに加えて:

これを行うことで、ファイル全体を一度に文字列に読み取ることができることに注意してください。

std::ifstream input_ifstr(filename.c_str());

std::string str(
    (std::istreambuf_iterator<char>(input_ifstr)),
    std::istreambuf_iterator<char>());

input_ifstr.close();

必要に応じて、後で getline で処理する文字列ストリームを構築できます。

于 2012-11-05T22:50:12.650 に答える