Ich versuche, eine RTCW BSP-Datei mit verschiedenen Klumpen als Strukturen mit ifstream die read() -Funktion definiert, aber ich bekomme die falschen Werte, wenn ich auf die Variablen in der Debugger.Eine Struktur im Binärformat lesen mit ifstream read()
Die ersten 2 structs sind wie folgt definiert:
struct DirEntry
{
int offset;
int length;
};
struct Header
{
char magic[4];
int version;
DirEntry direntries[17];
};
Der Code, den ich, um zu lesen, ist dies:
Header head;
mapfile.read((char*)(&head.magic), sizeof(head.magic));
mapfile.read((char*)(&head.version), sizeof(head.version));
:
bool XWorldMap::Load(string filename, ID3D10Device* pd3d)
{
ifstream mapfile;
mapfile.open(filename.c_str(), ios::binary);
if (!mapfile.is_open())
return false;
else
{
// read in header
Header head;
mapfile.read((char*)(&head), sizeof(head));
}
return true;
}
ich auch schon versucht, diese habe Immer noch nicht die richtigen Werte.
Ich bin mir ziemlich sicher, es hat mit der Struktur Polsterung in der Datei zu tun, aber ich weiß nicht, wie man es richtig eingestellt ...
Dank.
Können Sie versuchen, nur ein 'Header' zu erstellen, schreiben Sie es in eine Datei, lesen Sie es in eine neue' Header' und prüfen Sie dann, ob es gleich ist oder nicht. A [mcve] sollte helfen, das Problem zu finden. – NathanOliver
Können Sie Ihrer Frage einen hexadezimalen Speicherauszug des ersten Teils der Datei hinzufügen, die Sie laden möchten? – Yojimbo