可能重复:
What is the best way to slurp a file into a std::string in c++?
我试图将整个文本文件存储为字符串, 如何动态存储文本文件可能包含的任何数量的字符?
答案 0 :(得分:6)
C ++标准库为动态大小的字符串提供std::string
类型。它是std::basic_string<char>
的typedef。 cppreference.com上有a useful reference。
要将文件中的行读取到std::string
,请查看std::getline
。您可以使用它从文件中获取一行,如下所示:
std::string str;
std::getline(file_stream, str);
请务必检查流(由std::getline
返回)以查看是否一切正常。这通常是在循环中完成的:
while (std::getline(file_stream, str)) {
// Use str
}
答案 1 :(得分:3)
除了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进行处理。