C++模板类实现文件的操作
来源:互联网 发布:app在线制作淘宝客 编辑:程序博客网 时间:2024/06/12 22:54
本文使用C++模板类实现对二进制文件的操作(注:因为模板类分离编译,所以只能将实现也放在头文件中):
1、概要:
(1)文件格式:存二进制格式,文件内的数据使用空格或者逗号分隔开;
(2)数据保存形式:使用c++二维容器进行保存;
(3)数据类型:主要包括3种:字符型、数字、字符串;
2、使用:
(1)运行环境:Linux,G++ 4.9.2;
(2)数据输入:将数据保存在./inDir/filename文件中,其中filename在程序调用的时候指定;
(3)数据输出:运行结果保存在./outDir/result.out文件中;
(4)使用方式:直接复制Myfile.h到程序路径下,include就行;
3、操作:主要包括获取文件数据,增、删、查、改
Myfile(string filename); //构造函数
void addData(int row, int col, valueType data); //添加一个元素
void addRowData(int row, t_vec data); //添加一行元素
void addColData(int col, t_vec data); //添加一列元素
void eraseData(int row, int col); //删除一个元素
void eraseRowData(int row); //删除一行元素
void eraseColData(int col); //删除一列元素
void alterData(int row, int col, valueType data); //修改一个元素
void alterRowData(int row, t_vec data); //修改一行元素
void alterColData(int col, t_vec data); //修改一列元素
valueType getData(int row, int col); //根据位置返回数据
t_vec getRowData(int row); //返回第row行的数据
t_vec getColData(int col); //返回第col行的数据
int getElementCount(valueType data); //获取文件中值为data的个数
void printData(); //打印数据
void processFile(); //将文件处理成标准格式:首尾无空格,中间以空格隔开
t_t_vec getFileData(){return fileData;}//返回文件数据
int getRowNum(); //获取行号
vector<int> getColNum(); //获取列号
4、模板类定义:
template <typename T> class Myfile{ public: typedef T valueType; typedef vector<valueType> t_vec; //类型为valueType的容器 typedef vector<t_vec> t_t_vec; //类型为valueType的二维容器 typedef typename vector<valueType>::iterator t_vec_iter; //第一个容器的迭代器 typedef typename vector<t_vec>::iterator t_t_vec_iter; //二维容器的迭代器 Myfile(string filename); //构造函数 void addData(int row, int col, valueType data); //添加一个元素 void addRowData(int row, t_vec data); //添加一行元素 void addColData(int col, t_vec data); //添加一列元素 void eraseData(int row, int col); //删除一个元素 void eraseRowData(int row); //删除一行元素 void eraseColData(int col); //删除一列元素 void alterData(int row, int col, valueType data); //修改一个元素 void alterRowData(int row, t_vec data); //修改一行元素 void alterColData(int col, t_vec data); //修改一列元素 valueType getData(int row, int col); //根据位置返回数据 t_vec getRowData(int row); //返回第row行的数据 t_vec getColData(int col); //返回第col行的数据 int getElementCount(valueType data); //获取文件中值为data的个数 void printData(); //打印数据 void processFile(); //将文件处理成标准格式:首尾无空格,中间以空格隔开 t_t_vec getFileData(){return fileData;}//返回文件数据 int getRowNum(){return rowNum;} vector<int> getColNum(){return colNum;} private: string fileName; //待操作文件的文件名 t_t_vec fileData; //文件中的数据 int rowNum; //行数 vector<int> colNum; //保存列数的容器 void setRowColNum(); void readFile(); //读取文件中所有的数据};
5、程序源代码:http://download.csdn.net/detail/fengjiajun169/8368747
- C++模板类实现文件的操作
- 使用ICSharpCode.SharpZipLib-(C#)实现解压缩文件的操作类
- C语言实现文件、文件夹的操作
- 【c++】模拟实现栈 类模板(Stack的基本操作)
- C++primer 实现queue的模板类
- C++:栈(stack)的模板类实现
- C实现文件内部操作
- [c++]栈模板的实现
- C的文件操作
- C的文件操作
- C的文件操作
- C 的文件操作
- c语言实现最简单的写文件操作
- c语言以字符形式实现文件的读写操作
- linux文件操作指令的c语言代码实现
- 类模板实现复数运算的基本操作
- 栈的基本操作和实现C++模板类
- 标准C的.h文件的模板
- iOS微博显示界面Demo代码分析
- 游戏任务成就体系的实现(附五):NodeJS的异常处理
- Bellman Ford算法
- Qt UDP的初步使用
- ORALE11g Direct Path Read可能影响性能
- C++模板类实现文件的操作
- iOS推送测试方法
- myeclipse上的项目连接SVN主机地址的方法
- 游戏任务成就体系的实现(附六):NodeJS TCP机制搭建服务器
- xampp里使用zend guard loader的问题
- oracle exp 导出非常多的表且是表结构
- QT 调用 DLL 方法
- MySQL配置proxy读写分离负载均衡
- uboot启动流程