C++ 将ASCII文件读入std :: string
示例
std::ifstream f("file.txt");
if (f)
{
std::stringstream buffer;
buffer << f.rdbuf();
f.close();
// The content of "file.txt" is available in the string `buffer.str()`
}该rdbuf()方法返回一个指向的指针,该指针streambuf可以buffer通过stringstream::operator<<成员函数推入。
另一种可能性(斯科特·迈耶斯(ScottMeyers)在“有效的STL”中提出)是:
std::ifstream f("file.txt");
if (f)
{
std::string str((std::istreambuf_iterator<char>(f)),
std::istreambuf_iterator<char>());
//在`str`上的操作...
}这很好,因为它只需要很少的代码(并允许将文件直接读取到任何STL容器中,不仅包括字符串),而且对于大文件而言可能会很慢。
注意:字符串构造函数第一个参数周围的多余括号对于防止最棘手的解析问题至关重要。
最后但并非最不重要的:
std::ifstream f("file.txt");
if (f)
{
f.seekg(0, std::ios::end);
const auto size = f.tellg();
std::string str(size, ' ');
f.seekg(0);
f.read(&str[0], size);
f.close();
//在`str`上的操作...
}这可能是最快的选择(在建议的三个之中)。
热门推荐
10 爸爸过年的祝福语简短
11 创业失败返乡祝福语简短
12 乘风语文考试祝福语简短
13 团队海报祝福语简短英语
14 恭贺新婚文案祝福语简短
15 员工离职祝福语简短高级
16 高温祝福语短语大全简短
17 祝福语签名简短大全女生
18 虎年小年快乐简短祝福语