使用模板类读取不同类型的文件
Reading different type of file with template class
我想创建我的第一个模板类,以操纵文件。更具体地开始。
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");
我有点新的模板,所以我有以下问题。
如何读取/保存通用的文件类型?我的计划是读取文件,计数单词或数字,然后将其推入Foo-Type向量。然后,在操纵向量后,我想保存计数结果。
构造函数和变量和向量的功能如何?我应该在模板类中遵循任何特定的规则吗?
对不起这种混乱的问题,但我不知道该怎么开始。感谢所有回答。
我认为您很接近。您想如何使用模块的示例看起来不错,它只是不匹配函数原型。
这样更改您的parsing()
功能:
void Foo<T>::parsing(std::vector<T>& v, const std::string& filename);
关于您的问题:
- 您的解决方案是一种类型。只是向量不应该是
Foo
'S的向量,而是T
's。
的向量 - 变量的初始化在模板中与正常类中的初始化没有差异。
相关文章:
- avrogencpp能为模式中的每种类型生成单独的头文件吗
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 如何从文本文件中读取数值,直到遇到字符类型?
- 如何将文本文件的特定行读取到 int 类型的数组中C++?
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 如何格式化我的文本文件以使其不会一遍又一遍地重复同一行?
- 使用 Boost.Spirit 解析具有混合数据类型的 OBJ 文件?
- 通过C++从目录中过滤特定文件类型
- 对模板运算符的未定义引用,其定义位于同一头文件中
- 是否可以在同一头 c++ 文件中调用内联函数
- 在同一头文件的结构中使用类
- 如何使用同一头文件编译和链接C++中的目标文件
- 如何在CTreeCtrl中获取所选项目的文件类型?文件扩展名可能被隐藏,因此 GetItemText 没有帮助
- 在同一行读取具有多个类型的文件
- 在同一头文件中定义外部变量
- C++错误:类与同一头文件中的结构有关系
- 设计跨平台多内容类型文件格式的最佳方法
- 只计算*.cpp和*.h类型文件中的行数
- 当构造函数具有相同的参数类型(文件路径)时,如何从数组创建(初始化)std::元组