gpt4 book ai didi

c++ - 如何使用 {} block C++ 解析文件

转载 作者:太空狗 更新时间:2023-10-29 23:53:30 25 4
gpt4 key购买 nike

我有这样一个文件

EntityName Jaws
{
Animation WALK
{
NumberOfFrames 9
DirectionOfSprite L
DirectionGenerate LR
FPS 9
}

Animation IDLE
{
NumberOfFrames 6
DirectionOfSprite L
DirectionGenerate LR
FPS 9
}
.......
.......
}

我如何在这个结构中解析这个文件

struct AnimationData
{
string animationName;
int noOfFrames;
eAnimationDataDirection direction;
int FPS;
};

struct EntityAnimationData
{
string entityName;
vector<AnimationData> animationData;

string getSpriteResourceName(AnimationData animationData, int frameNumber);
};

我想将此数据存储到结构中。我如何去获得一个干净的解决方案?我已经阅读了文件的基本阅读。

这是我试过的

EntityAnimationData parseAnimationData(const char* filename)
{
EntityAnimationData data;
ifstream file;
file.open(filename);
char output[128];
string op;
if (file.is_open())
{
while (!file.eof())
{
file >> output;
if(strcmp(parameter,AD_ENTITY_NAME.c_str())==0)
{
file >> output;
data.entityName = output;
cout<<data.entityName<<endl;
do
{
file >> output;
cout<<output<<endl;
}while(strcmp(output,"}")!=0);
}
}
}
file.close();
return data;
}

最佳答案

如果这是您正在制作的游戏,我会考虑更改输入文件格式的详细信息。如果您使用现有的文件格式,则可以使用库来显着简化解析。

例如,同样的数据可以很容易地存储为 XML,这将允许您使用 XML 解析器(例如 TinyXML-2)来读取数据,并且可能还可以简化文件的创建。它还可以更简单地添加更强大的格式问题处理,例如额外的空格等。

关于c++ - 如何使用 {} block C++ 解析文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10628086/

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