c ++使用空格,换行符,制表符等提升ifstream读取文件内容

时间:2018-04-03 10:38:04

标签: c++ boost filesystems ifstream

我有下一个代码:

#include "boost/filesystem.hpp"
#include "boost/filesystem/fstream.hpp"
#include <iostream>
namespace fs = boost::filesystem;
...
fs::path p{ "mysuperfile.txt" };
fs::ifstream ifs{ p };
std::string data;
ifs >> data;
ifs.close();
...

问题是,它读取文件的内容直到第一个空格,这只是一个第一个单词。而已。所以问题是如何使用boost :: filesystem:ifstream读取带有空格,换行符,制表符和所有其他可能字符的文件内容?感谢。

1 个答案:

答案 0 :(得分:1)

为什么不简单

std::ifstream ifs("mysuperfile.txt");
std::string data(std::istreambuf_iterator<char>(ifs),
                 std::istreambuf_iterator<char>());

之后,data的内容应该是文件内容的精确副本。