Aca les dejo dejo el codigo
Código C++:
Ver original
#include <iostream> #include <fstream> using namespace std; class prueba { int p; public: void escribir(); void leer(); }; void prueba::escribir() { cin>>p; } void prueba::leer() { cout<<"Numero "<<p<<endl; } int main(int argc, char *argv[]) { prueba P[3]; fstream archivo; archivo.open("probar", ios::in | ios::out | ios::binary); archivo.seekg(0); for(int i=0; i<3;i++){ cout<<"Numero "<<i+1<<": "; P[i].escribir(); archivo.write((char *) &P, sizeof P); } archivo.seekg(0); cout<<"\n"; for(int i=0; i<3; i++) { archivo.read((char *) &P, sizeof P); P[i].leer(); } int L = sizeof(P); cout<<"\n"; cout<<"Longitud archivo: "<<L; cout<<"\n"; int m; cout<<"Ingresar numero de objeto: "; cin>>m; int pos = (m-1) * L; //cout.setf(ios::hex, ios::basefield); cout<<"Posicion Objeto: "<<pos<<"\n"; archivo.seekg(0); int start = archivo.tellg (); cout<<"Start: "<<start<<endl; archivo.seekg (0, ios :: end); int end = archivo.tellg (); cout<<"End: "<<end<<endl; int size = (end - start); cout<<"Size: "<<size<<endl; archivo.seekg(0, ios::end); long TamTotal = archivo.tellg(); cout<<"Tamanio Total: "<<TamTotal; cout<<"\n"; int CantObj = TamTotal/L; cout<<"Cantidad de Objetos: "<<CantObj; archivo.close(); return 0; }
Por ahi tambien puede ser que algunas de las sentencias tengan un error logico y no me estoy dando cuenta, lo raro es que siempre me da como resultado -1