初涉c++ ——完善五子棋的保存加载功能

本文介绍了作者如何在C++中实现五子棋游戏的保存和加载功能。通过重载<<和>>操作符,作者成功地实现了数据的存储和读取。在遇到bool类型数据读取问题时,作者通过转换为int类型解决了问题。代码示例展示了保存和加载的具体实现,同时分享了在编程过程中学习和求助的经验。

  前几周我们接到老师的题目,要我们编程实现五子棋的保存和加载功能,当时我们都傻眼了,才接触到c的指针,怎样去完成c++的保存呀!但是人都是被逼出来的,最终我可以做出来了。五子棋程序可以保存棋盘,加载后也可以悔棋。

  其实这很大程度归功于对c++中的cin的接触,我在优快云上发了一个帖子,专门问了一下这个问题,一些高手居然肯屈尊来指教。其中一个网友说重载<<>>,当时我觉得很有道理,并思考是否Lf_saveFilecin是一样的是类中的文件输入流。于是套用在老师给的学生版中,先对一个数据进行存储,接着编译通过,然后再对下面的数据以同样的方法对数据进行存储。

  然而难题出现了,存储之后,我怎样将所存的问件打开并读取呢?一开始我以为一定要二进制才能有逆转化,结果在MSDN 上查询关于转格式的函数,比如char * itoavalue*str2)这样的函数。最后一位网友说为什么一定要二进制呀,其他格式也可以。只要可以存储且读取时可以识别信息任何符号都是可以的。于是我根据网络资料搜集到一个完成版,果然是不进行任何转换而是直接对数据进行存取。不过我不知道为何在装载bool类型的数据时会出错,于是我另外定义两变量,先将bool型的变量转换成int型的,居然可以。

  下面附上我的代码:

void CMyDlg::OnSave() 

{

int i,j; //定义两个计数器,用于循环

CString ls_fileName;//声明一个对象文件名

ofstream lf_saveFile;//声明一个存储对象

CFileDialog lcf_open(false,"wzq",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,

"wzq files(*.wzq)||",NULL);//打开文件,添加文件名

if (lcf_open.DoModal()==IDOK){

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值