我有下一个代码:
#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读取带有空格,换行符,制表符和所有其他可能字符的文件内容?感谢。
答案 0 :(得分:1)
为什么不简单
std::ifstream ifs("mysuperfile.txt");
std::string data(std::istreambuf_iterator<char>(ifs),
std::istreambuf_iterator<char>());
之后,data
的内容应该是文件内容的精确副本。