我有这种格式的代码:
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'的内容写入我的文件中。如何修复上面的代码,以便将控制对象的内容写入文件。
答案 0 :(得分:0)
通常,您需要的不仅仅是编写对象的字节以便能够保存并重新加载它。
问题被命名为“serialization”,并且根据很多因素,有几种策略。
例如,知道是否需要在同一系统上保存和重新加载对象,或者如果您需要在另一个系统上重新加载它,这一点很重要;知道对象是否包含指向其他对象的链接,如果链接图是一个简单的树,或者是否存在可能的循环,是否需要支持版本控制等等,这也是基础知识。
像代码所做的那样将字节写入磁盘即使对于包含std::string
的对象这样简单的事情也不会起作用。