为C+编写、读取和使用专用数据文件+; 我正在研究C++项目,我需要做的一部分,让它能够读取多个数据文件来拉取一个名称、描述和选择它的要求,这些选项可以包括选择了先前的数据文件。该程序本质上是一个探路者角色的创造者和数据文件或壮举。我希望人们能够轻松地将新的专长添加到列表中,因此我希望每个专长都是独立的,并且我需要它们大部分是简单的语言,以便有人能够查看其中一个文件,并且大部分了解该做什么 遗憾的是,我至今为止没有一个C++资源覆盖这种方式读取文件,也没有用什么语言来完成。对于我来说,什么是一种很好的语言来完成这项工作?我将如何从该文件类型中获取数据?下面是一个可用于演示的示例壮举:

为C+编写、读取和使用专用数据文件+; 我正在研究C++项目,我需要做的一部分,让它能够读取多个数据文件来拉取一个名称、描述和选择它的要求,这些选项可以包括选择了先前的数据文件。该程序本质上是一个探路者角色的创造者和数据文件或壮举。我希望人们能够轻松地将新的专长添加到列表中,因此我希望每个专长都是独立的,并且我需要它们大部分是简单的语言,以便有人能够查看其中一个文件,并且大部分了解该做什么 遗憾的是,我至今为止没有一个C++资源覆盖这种方式读取文件,也没有用什么语言来完成。对于我来说,什么是一种很好的语言来完成这项工作?我将如何从该文件类型中获取数据?下面是一个可用于演示的示例壮举:,c++,C++,名称:大盲斗 先决条件:Perception 15(这将是一个变量,我需要它来检查它是否为15或更高),改进的盲斗(这是我需要确保选择的另一个专长) 好处:你的近战攻击忽略了低于完全隐藏的未命中几率,你对待完全隐藏的对手就像他们有正常的隐藏(20%的未命中几率而不是50%)。您仍然可以像正常情况一样重新掷一次未命中概率百分比骰 如果你成功地锁定了一个看不见或隐藏的攻击者,那么该攻击者就不会获得任何与远程攻击相关的优势,无论其攻击范围如何。也就是说,你不会失去护甲类的敏捷加成,攻击者也不会因为隐形

名称:大盲斗

先决条件:Perception 15(这将是一个变量,我需要它来检查它是否为15或更高),改进的盲斗(这是我需要确保选择的另一个专长)

好处:你的近战攻击忽略了低于完全隐藏的未命中几率,你对待完全隐藏的对手就像他们有正常的隐藏(20%的未命中几率而不是50%)。您仍然可以像正常情况一样重新掷一次未命中概率百分比骰

如果你成功地锁定了一个看不见或隐藏的攻击者,那么该攻击者就不会获得任何与远程攻击相关的优势,无论其攻击范围如何。也就是说,你不会失去护甲类的敏捷加成,攻击者也不会因为隐形而获得通常的+2加成

(可能最终以影响其他变量的方式写入)

特别:对于受到眨眼法术影响的角色来说,更大的盲人战斗专长是没有用的


<>如果不能以一种人们可以快速添加新文件的方式来完成,那就好了,那就是我想做的,而不是绝对需要的,只是我是新的C++工作人员,正如我所说的。由于某些原因,我的参考资料到目前为止完全忽略了这类内容。

有相当多的人工可读写数据格式,每种主要编程语言都有绑定,一些示例中有一个非常基本的示例,它看起来像什么:

  • XML

    <character>
       <name>foobar</name>
       <abilities>
            <ability>
                <name>perception</name>
                <value>15</value>
            </ability>
        </abilities>
    </character>
    
    官方网站上有一个实现列表,顺便说一下,它是用YAML编写的

  • JSON

    {
        "name": "foobar",
        "abilities": {
            "perception": 15
        }
    }
    

请注意,数据格式不实现您的逻辑。如果perpetion>=15意味着盲目打架,你就得自己动手。

我不明白这个问题。比如说,json文件有什么问题?简单地说?我不知道如何用C++来读取任何文件。这是问题的最大部分。另一个问题是使用这种数据会很好。让我这么说吧,我正在尝试制作一个程序,为人们生成一张字符表。每几级,包括第一级,他们都需要从一系列专长中挑选。选择这些专长有时需要考虑一些需求,这些需求通常存储在程序本身的变量中。我认为你问的问题有点错误。您想知道如何对应用程序逻辑建模,然后另外选择正确的工具。在我看来,你只是想要工具。在我看来,你需要为这些壮举设计一个模型,以便在应用中使用。不管它是如何存储在文件中的。然后设计和实现工具或方法来序列化和反序列化(存储和加载)它们。我也不鼓励您为此目的编写自己的工具,因为已经有了一个很好的工具。例如,JSON格式。使用第三方库。嗯,更重要的是我需要壮举本身是那种格式,但我还需要知道如何获取数据,特别是如果我需要让它读取特定文件夹中的所有XML文件,尽管我认为我可以使用类似XML的东西来完成壮举,因此,我现在的主要问题是,如何让它逐步通过多个XML文件来获取我输入的数据,以便可以将其列出并从列表中选择?基本上,它的工作原理是你每隔一段时间选择一些专长,但要选择它,你需要满足先决条件。我不确定你想要什么。如果您需要在数据文件中定义先决条件/依赖项,那么您需要以一种您的程序可以在运行时解释它们的方式正式定义它们,并根据它们做出决策。如果这是我需要做的,我不知道如何做。正如我所说的,我更愿意让它们具有人类可读性,但这不是绝对必要的,所以如果我必须定义所有这些,我将如何为示例壮举编写数据文件并获取数据?从简单开始。首先要做程序中的所有事情,如果可行的话,就去序列化和反序列化数据。先创造没有专长的东西。然后使用XML或YAML创建基本技能。一旦你可以阅读基本专长,开始添加另一个步骤——比如选择该专长的属性先决条件。一旦你完成了这项工作,你就可以担心那些需要其他专长才能被选中的专长。在C++中阅读文本文件是微不足道的。你可以在网上找到教程。用XML或YAML阅读是众所周知的。你也可以找到解析器。从小处做起,循序渐进。
{
    "name": "foobar",
    "abilities": {
        "perception": 15
    }
}