C++ 反序列化xml数据时发生异常

C++ 反序列化xml数据时发生异常,c++,boost,c++17,C++,Boost,C++17,我得到了这个异常:“libc++abi.dylib:以boost::archive::archive\u类型的未捕获异常终止:输入流错误没有这样的进程 以boost::archive::archive\u类型的未捕获异常终止异常:输入流错误无此类进程 (lldb)“从xml文件反序列化时在我的程序中 我的节目: #include<iostream> #include<fstream> #include<boost/archive/xml_oarchive.hpp&g

我得到了这个异常:“libc++abi.dylib:以boost::archive::archive\u类型的未捕获异常终止:输入流错误没有这样的进程 以boost::archive::archive\u类型的未捕获异常终止异常:输入流错误无此类进程 (lldb)“从xml文件反序列化时在我的程序中

我的节目:

#include<iostream>
#include<fstream>
#include<boost/archive/xml_oarchive.hpp>
#include<boost/archive/xml_iarchive.hpp>

int main(){
    std::string fname = "file.xml";

{
    std::string a("hello world");
    
    std::ofstream of(fname.c_str());
    boost::archive::xml_oarchive of_xml(of);
    of_xml << BOOST_SERIALIZATION_NVP(a);
    
    of.close();
    
}

{
    std::string b;
    std::ifstream inf(fname.c_str());
    boost::archive::xml_iarchive inf_xml(inf);
    inf_xml >> BOOST_SERIALIZATION_NVP(b);
    
    inf.close();
    
    std::cout<<"string is : "<<b<<"\n";
}


return 0;
}
#包括
#包括
#包括
#包括
int main(){
std::string fname=“file.xml”;
{
std::字符串a(“你好世界”);
(fname.c_str())流的std::of;
boost::archive::xml\u-oarchive of\u-xml(of);
xml>BOOST\u序列化\u NVP(b);
inf.close();

std::coutAt上面哪一行代码出现异常?您使用try/catch处理异常?这有什么问题?行“inf\u xml>>BOOST\u SERIALIZATION\u NVP(b);”给出异常,当我使用try catch block时,异常不是由block捕获的,我使用的是Xcode,不知道为什么它会给我这个错误:你不需要
.c_str()
打开文件流时-当文件流超出范围时,文件流将自动关闭。我用clang++编译的结果是这样的。如果我用g++编译,同样的程序似乎也能工作。我在valgrind中开始运行g++版本,但它只是继续运行……现在已经运行了30多分钟。@TedLyngmo有趣的是,有了g++10和clang++9(启用了asan/ubsan),它在我的机器(boost 1.74.0)上运行良好(注意,它们使用不同版本的消毒剂库)。