我正在实现一个模板函数,以逐行将文件和类似文件的实体读取到向量中:
#include <iostream>
#include <vector>
#include <iostream>
#include <iterator>
#include <algorithm>
#include <fstream>
using namespace std;
template<typename T> vector<T> readfile(T ref1)
{
std::vector<T> vec;
std::istream_iterator<T> is_i;
std::ifstream file(ref1);
std::copy(is_i(file), is_i(), std::back_inserter(vec));
return vec;
}
我希望在 main 中使用以下代码读取文件:
int main()
{
std::string t{"example.txt"};
std::vector<std::string> a = readfile(t);
return 0;
}
我收到错误消息:“不匹配调用 '(std::istream_iterator, char, ...
让我知道是否需要提供更多错误消息。很可能我只是把一些简单的事情搞砸了。但我不明白为什么 - 使用教程我得到了这个,我认为这是一个很好的解决方案。