c++可以用来制作游戏。可是,如果制作的游戏不能存档,那就特别让人心疼了。这种的游戏通常都是辛辛苦苦玩了半天,好不容易打出的记录,程序重启后,一夜回到解放前。

看着宝贵的血汗数据就这样变为0,小凤我决定,一定要找到一个存读档的方法给大家!

使用freopen

打开文件

freopen是使用重定向的方法读取文件,需要<cstdio>库。听不懂不要紧,反正是个方法就对了。

先来看看打开文件的格式:

freopen(const char *Filename,const char *Mode,FILE *File);

Filename就是你要打开的文件名,用""括起来。

Mode就是模式,有"r"(read读档)和"w"(write存档) 两种。

最后一个是控制流的地方,这个freopen其实也跟流什么的沾沾边,先不深究。这个位置要跟Mode联系起来,Mode是"r"就写stdin,是"w"就写stdout,不能搞错。还有一种叫stdderr,不常用。

最终写下来是个这么个玩意儿:

freopen("C:\\Windows\\system32\\shell32.dll","r",stdin);
freopen("C:\\Windows\\system32\\shell32.dll","w",stdout);

顺带一提:“\\”是个转义字符,本来是“\”的意思。

打开了文件,接下来怎么进行读写的操作呢?

读写操作

打开文件之后,可以使用平常使用的cout,printf写入,cin,scanf读出了。

假如文件里有这样几个数:

1314
520
233

打开了文件,用3次cin

for(int i=0;i<3;++i){cin>>x[i];
}

3次cin的结果将会是1314,520与233。

cout什么东西都会跑到文件里头。

但有个问题,打开文件后面所有输入输出都只对文件起作用了,怎么恢复?

fclose关闭文件就很重要了。

关闭文件

可以用fclose()函数来关闭文件的通道。

打开的文件模式是stdin,括号里就写stdin,stdout就写stdout。

于是就成了这样:

fclose(stdin);fclose(stdout);

总的来说,可以把freopen看做是一个黑洞

往里开,它把你的输出内容吸进了文件里

往外开,它把文件里的东西吸出来当输入内容给你

我讲完啦!

——by The_phonx 小凤

C++ 关于存档与读档相关推荐

  1. Unity游戏存档与读档

    目前unity常见存档和读档有几种方式,也就是常见的存储数据的方式(注意存档和读档都是针对单机游戏而言的,角色信息,道具信息,关卡情况等) Unity存档的方式大概分为这两大类 图片来源自siki学院 ...

  2. Unity中采用JSON进行存档和读档

    在利用JSON做存档和读档之前,首先要在Assets导入一个脚本!这个脚本就是LitJson.dll 然后在Unity中首先创建一个Save脚本,用于保存游戏中相关的信息,在这里我存储的是游戏中怪物的 ...

  3. Unity_二进制,Jason,XML存档读档

    创建一个类Save 用来保存游戏的信息,以便于存档 Save.cs的代码 using System.Collections; using System.Collections.Generic; usi ...

  4. SaveLoad--Unity存档读档的学习总结

    存档与读档功能 举例: 传统RPG游戏(仙剑.空之轨迹): 1.角色信息(生命值,等级) 2.道具信息(装备,药品) 3.场景信息(场景名称.角色坐标) 4.事件信息(任务相关) 关卡类游戏:关卡的通 ...

  5. 正版七日杀服务器存档,七日杀网吧怎么存档 七日杀网吧存档读档方法介绍-游侠网...

    七日杀的电脑要求配置虽然不是特别高,但是相对于很多玩家的电脑来说还是一个不小的负担的,所以很多玩家会选择去网吧游玩,但是很多玩家发现网吧非主机玩家的人物数据重进总是清零.所以今天小编就为大家带来了便是 ...

  6. 游戏服务器之存档读档

    设计上: (1)存档方式 定时器在一定范围的分钟内随机存档一次,为了避免集中式存档 第一次需要全部存档一次,因为需要存档版本字段 分标签实时存档设置了标签的数据,减少每次存档数据 (2)压缩处理 档案 ...

  7. [虚幻引擎][UE][UE5]简单的游戏读档存档

    [虚幻引擎][UE][UE5]简单的游戏读档存档

  8. Python 名片管理系统(文件版,可存档读档)

    Python 名片管理系统(文件版,可存档读档) 相比于函数版的程序,文件版增加了存档读档操作 函数版的可以参考Python名片管理系统(列表.字典和函数的综合应用) 以下是新增部分的代码(不包括调用 ...

  9. c++游戏小技巧2:存读档

    <好久没更了>,今天难得有时间,更篇小技巧. 粥锁粥之,<一些游戏没有存档,当你玩到满级时,可能会很尴尬> 为了避免尴尬 流这种东西脱颖而出 ----------------  ...

最新文章

  1. php自定义控件,小程序自定义组件的实现方法(代码)
  2. Dos中@符号的使用演示(屏蔽echo off的回显)
  3. 零基础如何高效学好Java?Java怎么学?
  4. HashMap方法源码
  5. dump查询Java 状态
  6. python中bool函数的作用_Python内置bool函数详细介绍
  7. String s = new String(“hello“)创建了几个对象(图解)
  8. the android sdk location cannot be at the filesystem root
  9. 键盘上在方向键上面的9个键是干什么的?
  10. svr预测出来是一条直线_如何预测股价目标位,涨跌目标预测法之“解消点”帮你寻找...
  11. python语言的缩进可以采用tab键实现吗_python中使用空格还是使用 Tab键缩进的建议...
  12. docker学习记录 docker 脚本----redis,zookeeper,kafka(三)
  13. pycharm2016破解方法
  14. linux 运维安全,运维安全有哪些分类呢?linux学习线路图
  15. 科技初创企业遭遇IPO寒冬
  16. 冯.诺依曼体系结构对计算机发展的限制
  17. linux的下载利器——aira2 可以下载磁力链接
  18. Spring 依赖注入的理解及三种注入方式
  19. Markdown编辑器模式使用LaTex编辑数学公式入门
  20. 图像的读取 matlab,Matlab编程环境下图像的读取

热门文章

  1. web前端html+css+js 简单模仿敲木鱼
  2. web系统维护时显示维护状态页面
  3. 通用能力测试软件,个人通用能力测评
  4. iOS程序闪退的原因以及处理办法
  5. 认证资料大全(二十一)------ SAIR认证列表
  6. 高德地图放大Marker icon
  7. 【140813】C# 仿QQ农场游戏源代码
  8. Leetcode 974. 和可被 K 整除的子数组 前缀和
  9. 实战APP微信支付服务商模式(一个APP多个商户收款)
  10. 超级账本(Hyperledger)