C++如何将对象的内容写入文件

How to write content of an object into a file in c++

我有一个这种格式的代码:

        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' 的内容写入我的文件。如何修复上面的代码,以便将控件对象的内容写入文件。

通常,您需要的不仅仅是写入对象的字节才能保存和重新加载它。

问题名为“serialization”,根据多种因素,有多种策略。

例如,重要的是要知道您是否需要在同一系统上保存和重新加载对象,或者是否需要在不同的系统上重新加载它;了解对象是否包含其他对象的 links,如果 link 图是一棵简单的树,或者是否可能存在循环,是否需要支持版本控制等等,这也是基础。

像代码那样将字节写入磁盘是行不通的,即使对于像包含 std::string.

这样简单的对象也是如此