2017-11-05 4 views
0

ich einen Code in diesem Format haben:Wie Inhalt eines Objekts in einer Datei in c schreiben ++

 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(); 

ich den Inhalt des Objekts ‚Kontrolle‘ wollen geschrieben in meiner Datei zu sein. Wie man den obigen Code repariert, so dass der Inhalt des Kontrollobjekts in die Datei geschrieben wird.

Antwort

0

Im Allgemeinen brauchen Sie viel mehr, als nur die Bytes des Objekts zu schreiben, um es speichern und neu laden zu können.

Das Problem wird "serialization" genannt und abhängig von vielen Faktoren gibt es mehrere Strategien.

Zum Beispiel ist es wichtig zu wissen, ob Sie das Objekt auf dem gleichen System speichern und erneut laden müssen oder ob Sie es möglicherweise auf einem anderen System neu laden müssen; Es ist auch wichtig zu wissen, ob das Objekt Verknüpfungen zu anderen Objekten enthält, ob das Verknüpfungsdiagramm ein einfacher Baum ist oder ob es möglicherweise Schleifen gibt, ob Versionsverwaltung usw. erforderlich ist.

Schreiben der Bytes auf Festplatte wie Code tut nicht funktioniert auch für etwas so einfach wie ein Objekt mit einem std::string.

Verwandte Themen