0

可能重复:
在 C++ 中将文件啜饮到 std::string 中的最佳方法是什么?

我试图将整个文本文件存储为字符串,如何动态存储文本文件可能包含的任意数量的字符?

4

2 回答 2

9

C++ 标准库std::string为动态大小的字符串提供了类型。它是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 回答