0

以下代码不写入文件。

#include <cereal/types/vector.hpp>
#include <cereal/archives/xml.hpp>
{
    vector<int> v = { 1,2,3 };
    stringstream s;
    s << "cereal_test.xml";
    cereal::XMLOutputArchive  oarchive(s);
    oarchive(v); 
}

它显然可以正确编译和运行。

如果我们cout << s << endl;超出范围,我们会在控制台中看到:

cereal_test.xml
<?xml version="1.0" encoding="utf-8"?>
<cereal>
        <value0 size="dynamic">
                <value0>1</value0>
                <value1>2</value1>
                <value2>3</value2>
        </value0>
</cereal>

少了什么东西?

4

1 回答 1

0

谷物教程的错误复制粘贴:

它应该ofstream代替stringstream

{
    vector<int> v = { 1,2,3 };

    std::ofstream outFile("cereal_test.xml");
    {
        cereal::XMLOutputArchive  oarchive(outFile);
        oarchive(v);
    }
}
于 2019-03-06T15:32:30.703 回答