Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

n0_0ne

1x Contest-Sieger

  • »n0_0ne« ist der Autor dieses Themas
  • Private Nachricht senden

1

22.04.2009, 08:13

[solved] boost_serialize und std::list

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....