我想从一个看起来像这样的文件( First.txt )中读取:
1
2
3
和另一个文件( Second.txt ):
ab
cd
de
在main方法中,我将调用模板函数来读取这样的文件:
list<string> list1;
vector<float> list2;
read(list1, "First.txt");
read(list2, "Second.txt");
模板功能具有以下结构:
template<typename T>
void read(T &v, string s)
{
std::fstream f;
f.open(dataname,std::ios_base::in);
f.close();
}
此处T
代表list<string>
和vector<float>
如何使用fstream阅读此列表?
答案 0 :(得分:4)
尝试
void read(T &v, string s)
{
std::fstream f(dataname,std::ios_base::in);
typename T::value_type tmp;
while( f >> tmp )
v.push_back(tmp);
f.close();
}
答案 1 :(得分:0)
std::fstream f(s,std::ios_base::in);
v.assign(std::istream_iterator<typename T::value_type>(f),
std::istream_iterator<typename T::value_type>());
f.close();