使用模板类读取不同类型的文件

Reading different type of file with template class

本文关键字:同类型 文件 读取      更新时间:2023-10-16

我想创建我的第一个模板类,以操纵文件。更具体地开始。

template <typename T>
class Foo
{
public:
Foo();
~Foo();
std::vector<Foo<T>> vec;
void parsing(T&v,T&filename);

};
template<typename T>
inline Foo<T>::Foo()
{
}
template<typename T>
inline Foo<T>::~Foo()
{
}
template<typename T>
inline void Foo<T>::parsing(T&v, T&filename){
std::fstream file;
file.open(filename, std::ios_base::in)
if (plik.good()){
    typename T::value_type tmp;
    while (!plik.eof()){
        plik >> tmp;
        v.push_back(tmp);
    }
    file.close();
    }
}

然后我想做那种初始化。

Foo<std::string> file;
file.parsing(vec,"file.txt");

我有点新的模板,所以我有以下问题。

  1. 如何读取/保存通用的文件类型?我的计划是读取文件,计数单词或数字,然后将其推入Foo-Type向量。然后,在操纵向量后,我想保存计数结果。

  2. 构造函数和变量和向量的功能如何?我应该在模板类中遵循任何特定的规则吗?

对不起这种混乱的问题,但我不知道该怎么开始。感谢所有回答。

我认为您很接近。您想如何使用模块的示例看起来不错,它只是不匹配函数原型。
这样更改您的parsing()功能:

void Foo<T>::parsing(std::vector<T>& v, const std::string& filename);

关于您的问题:

  1. 您的解决方案是一种类型。只是向量不应该是Foo'S的向量,而是T's。
  2. 的向量
  3. 变量的初始化在模板中与正常类中的初始化没有差异。