gpt4 book ai didi

c++ - 使用 fscanf() 解析忽略空格或缺失值?

转载 作者:行者123 更新时间:2023-11-28 07:22:09 26 4
gpt4 key购买 nike

我正在尝试用 XML 扫描一个文本文件,XML 有许多具有这种结构的项目:

<enemy>
<type> 0 </type>
<x> 273 </x>
<y> 275 </y>
<event> </event>
</enemy>

问题是 xml 标签之间或标签内部可能有空格。我创建了一个循环,我试图在每次迭代中进行一次扫描,以将 int 类型、x、y 和事件分别放入一个变量中。但是我不知道如何忽略空格,也不知道如何处理缺失值,因为某些标签可能有也可能没有值(如事件)。

无论间距和缺失值如何,我如何扫描这个“敌人”?

最佳答案

这很简单 - 您使用fscanf() 解析 XML。使用真正的 XML 解析器,否则您将得到一个非常复杂的代码,该代码在 80% 的情况下都无法工作,要么返回错误数据,要么崩溃。

XML 格式(尽管看起来很简单)即使在大多数无害的情况下也是复杂的,并且现有的 XML 解析器存在是有原因的。参见 libxml或者很多其他的。

不过,如果您执意要自己解析 XML,那么正确的做法是首先对输入进行标记化,然后确保您的标记序列产生正确的形式。这比使用简单的 fscanf() 复杂得多。

关于c++ - 使用 fscanf() 解析忽略空格或缺失值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19262163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com