相关疑难解决方法(0)

使用迭代器正确读取和写入std :: vector到文件中

我试图理解这里提供的答案,但我似乎无法使其发挥作用.

这是我尝试过的:

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
#include <fstream>

int main()
{
    std::string path("numbersfile");

    std::vector<int> myVector{1,16,32,64};
    std::vector<int> newVector{};

    std::ofstream FILE(path,std::ios::out | std::ofstream::binary);
    std::copy(myVector.begin(),myVector.end(),std::ostreambuf_iterator<char>(FILE));

    std::ifstream INFILE(path,std::ios::in | std::ifstream::binary);
    std::istreambuf_iterator<char> iter(INFILE);
    //std::copy(iter.begin(),iter.end(),std::back_inserter(newVector)); //this doesn't compile
    std::copy(iter,std::istreambuf_iterator<char>{},std::back_inserter(newVector)); // this leaves newVector empty
}
Run Code Online (Sandbox Code Playgroud)

newVector在最后一次之后仍然是空的copy.怎么可以更新最后一个语句来填充newVector

c++ c++11

3
推荐指数
2
解决办法
4770
查看次数

标签 统计

c++ ×1

c++11 ×1