Ich spiel mich grad mit Speichern und Laden von Datenstrukturen in VC++ 2005. Dazu soll eine Liste des Typs "TFPoint" (eigene Klasse) gespeichert und geladen werden können. Aber egal wie lang diese Liste ist, die Datei wird zwar geschrieben, ist aber immer nur 24Byte groß. Dementsprechend funzt das Laden dann natürlich auch nicht.
(Der Code ist von einem Tutorial abgewandelt)
Code
struct filestructure
{
std::list<TFPoint> points;
};
void TransferFunction::save(std::string filename, std::list<TFPoint> gui_points)
{
filestructure fs;
fs.points = gui_points;
std::string name = "dat/" + filename + ".stf";
std::ofstream f;
f.open(name.c_str());
f.write((char *)(&fs),sizeof(fs));
f.close();
}
std::list<TFPoint> TransferFunction::load(std::string filename)
{
std::string name = "dat/" + filename + ".stf";
std::ifstream f;
filestructure fs;
f.open(name.c_str());
f.read((char *)(&fs),sizeof(fs));
f.close();
return fs.points;
}
Alles anzeigen