- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++(STL)实现的修改游戏存档文件的2个相关类.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了。他只是比对方更珍惜这份感情。C++(STL)实现的修改游戏存档文件的2个相关类 收藏
//本类可自动检查游戏存档中的数值
//属于模板类
//T代表要寻找数据的类型//如金钱,生命等属于整型
//但不排除以后要查找其他类型的数据。为了可扩充性,使用了模板。
template typename T
class CheckBinaryFile{
public:
typedef fstream::off_type AddressType;//要找的数据在文件中的地址类型
CheckBinaryFile();//构造函数
void Run();
private:
static const int MaxByte=sizeof(T);//要查找的数据的类型所占的字节数
const int CharSize;
EInputStream CIN;//一个加强输入流(第三方类)
string FileName;//文件名称
T OldData;//输入的要查找的数据
int ByteNumber;//要查找的数据所占的字节数
//mutable关键字是const的反义作用,容易变动的变量经常使用它
mutable bool InputIsOk;
//用于读的文件对象
mutable ifstream BinaryFile;
mutable listAddressType AddressList;
//操作方法
void Input();
int Check() const;
void SaveAddressToFile(ostream) const;//最后的const作用是防止修改本类对象的状态,即除mutable关键字标识的变量外其他都不可在此函数内做修改
void AutoModifySave(const T) const;//在函数内防止修改T类型的参数
};
template typename T
//如果是static声明的静态变量在类体内做了声明,则在类外必须再做定义,而且只能被声明一次
const int CheckBinaryFileT::MaxByte;
//源文件
////////////////////////////////////////////////////////////////////////////////////
//构造函数
template typename T
CheckBinaryFileT::CheckBinaryFile():CharSize(char),CIN(cin){
InputIsOk=true;
Input();
//CharSize 为sizeof(char),把cin 绑定到CIN。由于CharSize是常量,必须在构造函数的初始化列表中设定。
}
//私有函数:输入成员函数
template typename T
void CheckBinaryFileT::Input()
{
//打开指定的输入文件名的二进制文件
coutBinary Filename:\t;
cinFileName;
BinaryFile.open(FileName.c_str(),ios::in|ios::binary);
if(!BinaryFile)
{
InputIsOk=false;
cerropen file failed!\n;
return;
}
//输入要查找的数据
coutthe Integer you want to search:\t;
CINOldData;
//要找的数据的所占的数据位(字节数)
coutbyte number:(1--CheckBinaryFileT::MaxByte):\t;
CINByteNumber;
//字节数是否溢出的检查
if(ByteNumber1||ByteNumberCheckBinaryFileT::MaxByte)
{
ByteNumber=Chec
您可能关注的文档
- Access二级数据库程序设计.doc
- ACCESS建立表间关系2015.doc
- ACCESS数据库原理与应用.doc
- ACCESS数据库第一章.doc
- Access数据库讲义(1).doc
- ACCESS数据库转换成SQLSERVER数据库.doc
- ACCESS程序设计备份还原功能轻松实现.doc
- access转换成excel.doc
- Access日期和时间函数2015.doc
- ACL简单介绍与典型配置2015.doc
- 湖南省衡阳市第八中学2026届高三上学期第一次月考物理(原卷版).doc
- 浙江省普通高中尖峰联盟2026届高三上学期10月联考英语(原卷版).doc
- 四川省绵阳市南山中学实验学校2026届高三上学期10月月考英语(原卷版).doc
- 湖南省衡阳市第八中学2026届高三上学期第二次月考历史 Word版含解析.doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题09 功和机械能(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题10 内能及其利用(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题07 压强(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题01 机械运动(原卷版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(解析版).doc
- 福建中考物理5年(2021-2025)真题分类汇编:专题02 声现象(原卷版).doc
最近下载
- 2024年全球及中国天然超氧化物歧化酶行业头部企业市场占有率及排名调研报告.docx
- 初中英语固定搭配大全.pdf VIP
- 电力系统500kV串补保护的配置及动作逻辑原理详解培训.pptx VIP
- DB42_T 268-2012 蒸压加气混凝土砌块工程技术规程.docx
- 机电设备安装与维修专业人才培养方案.docx VIP
- 成人外周动脉导管留置与维护.pdf VIP
- 四宫格四阶数独学习材料包(完整版)-附带讲解和练习-适合零基础.pdf VIP
- 220kV升压站SVG设备安装.docx VIP
- 汽车灯光系统检修教学能力比赛教案.pdf
- 2023水电工程地下建筑物安全监测技术规范.docx VIP
原创力文档


文档评论(0)