【发布时间】:2014-05-16 19:32:48
【问题描述】:
我对谷物很陌生,我有一个(可能很简单)问题:
当我不知道 (XML) 存档中的对象数量时,有没有办法反序列化多个对象?
我尝试了类似的方法:
std::ifstream is("c:\\data.xml");
cereal::XMLInputArchive archive(is);
while (is.good() && !is.eof())
{
try{
ObjectIn oIn;
archive(oIn);
objectList.push_back(oIn);
}
catch (exception e){
}
}
假设我在 XML 文件中有 3 个对象,而我收到的 XML 没有包含对象编号。所以,在我的代码中,前 3 次迭代是可以的,但是第 4 次生成 “CerealTest.exe 中 0x0035395E 处未处理的异常:0xC0000005:访问冲突读取位置 0x00000018。”
你有什么建议吗?
【问题讨论】:
-
欢迎来到 StackOverflow。如果可能,您应该在启用调试的情况下编译它,以便您可以发布带有行号的异常。并解释您尝试过的内容(请参阅stackoverflow.com/help/how-to-ask)
标签: c++ serialization cereal