Hallo,
Ich versuche gerade eine std::list mit mit Einträgen vom Typ highscore_entry in eine Datei zu schreiben und soweit ich das versatnden habe, kann das boost_serialization.
Jetzt habe ich allerdings direkt ein Problem, denn das Programm läuft nicht mal bis zum Laden der list aus der Datei... Ich habe mir das so überlegt, dass ich eine Klasse Highscore schreibe, ein template, dem ich dann die Klasse der Einträge übergebe. Somit müsste ich dann nur die auswechseln...
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
void load_from_file(const char filename[])
{
std::ifstream ifs(filename);
if(ifs.is_open()) std::cout << "offen" << std::endl;
boost::archive::text_iarchive ia(ifs);
ia >> m_highscore_list;
}
|
Hier gibt er mir ein "offen" aus, und dann das hier:
error: terminate called after throwing an instance of 'std::length_error'
what(): basic_string::resize
Aborted
Der Fehler scheint aus der Zeile mit dem archive zu kommen, allerdings kann ich wenig damit anfangen... das hab ich so mehr oder weniger aus dem Tutorial dazu von der boost seite...
Kann mir jemand sagen, was ich falsch mache?
EDIT: oh man, lange genug drüber nachdenken, dann wird es einem auch klar -.-' ich musste zuerst einmal mit save_to_file() die datei ins richtige "format" bringen, damit ich davon lesen kann... irgendwie total logisch, aber ich hab nicht dran gedacht....