Cześć,
pracuję właśnie nad systemem który będzie zapisywał wcześniej przygotowane mapy w edytorze do pliku binarnego.
Konstrukcja pliku składa się z nagłówka, który wygląda tak:
struct mapFileHeader
{
int numOfTitleChars;
int mapWidth;
int mapHeight;
int numOfObjets;
};
Pierwsza zmienna zapisana do pliku określa ilość znaków składających się na tytuł mapy, który zapisywany jest od razu po zapisaniu headera:
// header
file.write((char *)(&mapHeader), sizeof(mapFileHeader));
// map title
file.write((char *)mapName.c_str(), strlen(mapName.c_str()));
Następnie, gdy próbuję odczytać tytuł swojej mapy:
char* src = new char[mapHeader.numOfTitleChars];
file.read((char *)src, mapHeader.numOfTitleChars * sizeof(char));
mapName = string(src);
cout << "mapname: " << mapName << ", " << string(src) << endl;
delete src;
Otrzymuję coś takiego:
Edit: Poprzednio się nie wrzucił, podsyłam. :)
Nazwa mapy powinna być "My Map", co sugeruje, że może odczytuje za dużo bitów?
Siedzę już nad tym trochę, dlatego będę wdzięczny za pomoc.