【问题标题】:c++ how to read and write within a filec++ 如何在文件中读写
【发布时间】:2014-04-29 01:08:27
【问题描述】:

我想制作一个基于文本的 rpg 游戏,但我遇到了一个问题,我对 c++ 相当“新”,知道一些概念但仍在学习。 所以我想知道的是;如何打开文件并编辑其中的值? 假设我有一个名为 health 的文件,用于我的角色健康并将其设置为 100。我知道您可以将变量减去您设置怪物要做的伤害,但我不知道我如何存储健康和编辑它,而我的程序继续进行。

即。这是我得到的最远的:

ifstream objectFile("health.txt");
string health;
double NoH;

cout << "welcome" << endl;
objectFile >> health >> NoH;
cout << health << ' ' << NoH - 15;

NoH = 生命值。到目前为止,我的程序所做的只是读取文件,然后从 100 中减去 15,因为这就是怪物造成的伤害。但是我如何让它“取出”这个值并从中减去 15?然后把它存回去,所以它是 85,下次我被击中它的 65 等等,所以它使游戏的目标是生存,即避免被击中和东西。我的意思是避免你的 hp 达到 0,但我也想学习如何通过让他们的 hp 达到 0 来实现你可以杀死的简单的基于文本的生物。 谢谢

【问题讨论】:

  • 在游戏中你可能会拥有比这些更多的状态信息。作为设计的一部分,您应该考虑如何表示所有这些数据以及如何(以及何时)持久保存它。许多游戏不会在每次更改时都保存到磁盘,而是定期(或在用户选择时)保存,状态主要只保存在内存中。
  • 一种选择是使用 INI 文件格式。在启动时将其内容读入局部变量,在游戏进行时修改这些变量,并在退出前将更新值的整个列表写回 INI 文件(完全替换原始 INI 文件)。
  • @joe 是的,它只是一个示例代码,我也将实现函数和类,但主要我想知道如何读取和写入文件的输出。如果您可以详细说明,那么“主要保存在内存中的状态”到底是什么意思:)
  • 我同意@Joe!即使状态信息会少一些,将信息主要保留在内存中也是合理的!
  • @cppnewb 我的意思是——你在 C++ 中有类、对象、变量。将您的信息存储在其中。有一组例程来获取这些结构并可以将它们持久化并从磁盘读取它们,但不要使用磁盘存储作为代码中的中间人来共享信息。

标签: c++ windows text


【解决方案1】:

如何使用 ini /properties 文件? 还是使用json?

如果您正在制作 rpg,玩家在保存游戏时是否将值(hp、mp、item、map(x,y) 等)保存到文件中?我猜剩下的时间应该在内存中存储/计算这些值。

关于 json https://code.google.com/p/vjson/

关于ini文件 http://www.hyperrealm.com/libconfig/

【讨论】:

  • 嗯,它不会是一个图形 rpg 或任何东西,只是一个基于控制台文本的,就像你可以选择的旧书,如果你选择了一个,你会转到另一个你阅读的页面.类似的东西..但是是的,在内存中存储/计算这些值是什么意思?你能给我一个示例代码吗?谢谢,我会查看链接
  • 在内存中只表示变量,char*、int、float 等等...所以你将值存储在变量中,当你输入“保存”时,你可以保存或加载到文件中命令,因为您可以在每次更改这些值时保存
  • 但是我可以在游戏进行时更改这些值吗?即我从100hp开始,然后我减去15 hp,因为那是怪物的伤害,然后下次我再次减去15,它会记住我的hp是85而不是初始值是100?如果这有意义
  • 你应该有不同状态的循环/例程,比如玩家回合(用户做某事,在地图上移动,击中怪物,打开门等)和一些从变量计算,将其存储回来-> NPC 回合(击中玩家、逃跑等)然后(一些根据变量计算,将其存储回来)......这将是一个循环,直到玩家 HP 0 或所有怪物被杀死例子。
  • 啊,是的,现在完全说得通了..我只是累得想不出str8 lol..也忘记了我可以用类做什么,即存储值等等..我会做一个迷你明天的项目,但现在感谢帮助人
猜你喜欢
  • 2014-03-11
  • 2014-05-09
  • 1970-01-01
  • 2012-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
  • 2011-04-18
相关资源
最近更新 更多