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
.
这样简单的对象也是如此
我有一个这种格式的代码:
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
.