我试图将整个文本文件存储为字符串,如何动态存储文本文件可能包含的任意数量的字符?
问问题
6240 次
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 回答