如何用c ++

时间:2017-11-05 20:08:38

标签: c++ file-io ifstream ofstream

我有这种格式的代码:

        srcSAXController control(input_filename.c_str());

        std::string output_filename = input_filename;
        output_filename = "c-" + output_filename.erase(input_filename.rfind(XML_STR));

        std:: ofstream myfile(output_filename.c_str());                                    

        coverage_handler handler(i == MAIN_POS ? true : false, output_filename);

        control.parse(&handler);

        myfile.write((char *)&control, sizeof(control));

        myfile.close();

我希望将对象'control'的内容写入我的文件中。如何修复上面的代码,以便将控制对象的内容写入文件。

1 个答案:

答案 0 :(得分:0)

通常,您需要的不仅仅是编写对象的字节以便能够保存并重新加载它。

问题被命名为“serialization”,并且根据很多因素,有几种策略。

例如,知道是否需要在同一系统上保存和重新加载对象,或者如果您需要在另一个系统上重新加载它,这一点很重要;知道对象是否包含指向其他对象的链接,如果链接图是一个简单的树,或者是否存在可能的循环,是否需要支持版本控制等等,这也是基础知识。

像代码所做的那样将字节写入磁盘即使对于包含std::string的对象这样简单的事情也不会起作用。