Ich baue gerade eine benutzerdefinierte Binärdatei für eine riesige Liste von Daten, die einige Winkel der Bewegungen in einem Spiel darstellen wird. Obwohl ich in eine Wand renne, wenn ich versuche, einen Weg zu finden, alle Datenpunkte zu schreiben und sie dann in einem riesigen Array oder Vektor zu lesen.Liste der Objekte aus der Binärdatei lesen
Hier ist, wie ich mein Dateiformat aufgebaut:
class TestFormat {
public:
float x;
float y;
float z;
};
Und den Testcode zum Schreiben und Lesen:
int main()
{
TestFormat test_1, temp;
test_1.x = 4.6531;
test_1.y = 4.7213;
test_1.z = 6.1375;
// Write
ofstream ofs("test.bin", ios::binary);
ofs.write((char *)&test_1, sizeof(test_1));
ofs.close();
// Read
ifstream ifs("test.bin", ios::binary);
ifs.read((char *)&temp, sizeof(temp));
ifs.close();
cout << temp.x << endl;
}
diesen Code zu erweitern, ich kann nur die zusätzlichen Objekte in die gleiche Datei schreiben , aber ich bin mir nicht sicher, wie ich diese Objekte später wieder in ein Array laden soll.
Sie haben gerade geschrieben, dann gelesen, * one *. Also das für mehr als einen tun? – WhozCraig
Hinweis: Wenn ein Objekt M aufeinanderfolgende Bytes belegt, dann und Array von N solche Objekte belegt N × M aufeinander folgenden Bytes. –
Ich verstehe, was Sie sagen. Aber wie benutze ich die 'read' Funktion um mehrere Objekte zu lesen? – JavaCake