I have a map with pointers to objects of a class, and I’m trying to output them all to a binary file and then read them back. I’m not convinced I have the syntax correct because when I am reading them back they are broken, i.e. don’t seem to have any of the data they were given before they went into the file. The line before this I iterate through the data and output them all so I know they are ok before they are printed
This is the code that outputs the account into the binary file.
for (it = accounts.begin(); it != accounts.end(); it++)
{
outFile.write((char*)&(*it).second, sizeof(Account));
}
Anyone know if this is ok?
EDIT: And it wasn’t
for (it = accounts.begin(); it != accounts.end(); it++)
{
outFile.write((char*)&(*(it->second)), sizeof(Account));
}
It looks like you are trying to write memory addresses cast to
char*to a file. These numbers will have no relevance whatsoever. Presumably you want to serialize the objects pointed at by those pointers. So first you need to find a means to serialize and de-serialize objects of that type, then write those to a file by re-referencing the pointers held in the map.