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:
Dove coordinates è un Vector<Coordinate*>*.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();
Per la lettura invece agiamo in questo modo:
Il problema è che non leggo in realtà nulla.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; }
Chi può aiutarmi nella lettura?
Grazie a tutti.

Rispondi quotando