tinyxml2使用打印机创建文件

时间:2015-02-18 18:38:34

标签: xml save tinyxml2

我正在尝试使用C ++和tinyxml2创建一个xml文件,以保存游戏状态。现在我最后得到一个空文件,我不知道为什么。任何帮助,将不胜感激。

FILE * pFile;
pFile = fopen ("test.xml","w");
XMLPrinter printer(pFile);
printer.OpenElement("Rooms");
printer.OpenElement("room");
printer.PushAttribute("id","RID_DUNGEON_1");
printer.PushAttribute("description","unpleasant dungeon");
printer.PushAttribute("name","dungeon");
printer.OpenElement("items");
printer.OpenElement("item");
printer.PushAttribute("id","torch");
printer.CloseElement();
printer.CloseElement();
printer.CloseElement();
printer.CloseElement();

最终结果应该是这样的:

<Rooms>
    <room id="RID_DUNGEON_1" description="unpleasant dungeon" name="dungeon">
        <items>
            <item id="torch"/>
        </items>
    </room>
</Rooms>

1 个答案:

答案 0 :(得分:0)

写入FILE *不会写入磁盘,它会写入用户空间缓冲区。

为了刷新用户空间缓冲区,您应该拨打fflush(或调用fflush的fclose)。

如果您想确保将数据写入存储设备,则应在fclose之前调用fsync