Salve, ho bisogno di scrivere un file binario che contenga degli oggetti di una classe Coordinate i cui attributi sono x1, x2, y1, y2 int e filename string.
Per la scrittura si utilzzano questi comandi:
codice:
ofstream of;
of.open("./coordinates.bin", ios::out | ios::binary);
ifstream reader;
reader.open("./coordinates.bin", ios::in | ios::binary);
for (int j = 0; j < (int) coordinates->size(); j++) {
of.write((char*) (*coordinates)[j], sizeof(Coordinate));
}
of.close();
Dove coordinates è un Vector<Coordinate*>*.
Per la lettura invece agiamo in questo modo:
codice:
vector<Coordinate*> V;
Coordinate* ptr;
reader.seekg(0,ios::end);
int size=reader.tellg();
reader.seekg(0,ios::beg);
int iteration=size/sizeof(Coordinate);
int reminder=size%sizeof(Coordinate);
while(iteration>0){
reader.read((char*)ptr,sizeof(Coordinate));
V.push_back(ptr);
iteration--;
}
if(reminder>0){
reader.read((char*)ptr,reminder);
V.push_back(ptr);
}
reader.close();
cout<<((V[0])).getX1()<<endl;
cout<<((V[0])).getFilename()<<endl;
}
Il problema è che non leggo in realtà nulla.
Chi può aiutarmi nella lettura?
Grazie a tutti.