我正在这样写我的文件:
std::ofstream os; // declared somewhere earlier
std::vector<char> vec; // declared somewhere earlier
std::ostreambuf_iterator<char> oi(os);
std::copy(vec.begin(), vec.end(), oi);
所以很自然,我想知道是否有类似的方法来读取让我们说使用std::istream_iterator
or的 5 个字节std::istreambuf_iterator
,但是由于它们不支持operator+
我似乎无法弄清楚如何实现这一点。
例如,我想象了一个接近这个的解决方案:
std::istream_iterator<char> ii(file);
std::copy(ii, ii + 5, vec.begin());
有没有办法在 C++14 中做到这一点?
PS:我想要一个使用 STL 的解决方案,所以使用boost
不是一个选项。