TKA Posted July 13, 2011 Report Share Posted July 13, 2011 Hola, he estado tratando de pasar de C a C++, y se me ha complicado un poco esto. Antes trabajaba con estructuras y las sabía pasar a archivos binarios con fwrite y fread, pero en C++ no se pasar las clases a archivos binarios, o es acaso que las clases no se pueden pasar y solo se pasan las estructuras? despues de todo no tiene sentido enviar funciones a archivos binarios o si? Si tengo por ejemplo una clase asi: #include <string> class producto { private: int id; string nombre; public: int getId(); void setId( int _id); string getNombre(); void setNombre( string _nombre); } Y la quiero guardar en un archivo binario con muchos productos, ¿Está bien hecho esto? producto prod; ofstream fsalida; prod.setNombre("NombrePrueba"); prod.setId(4343434); fsalida.open("prueba.dat", ios::out | ios::binary); fsalida.write(reinterpret_cast<char *>(&prod), sizeof(producto)); fsalida.close(); Y esto lo hice para leerla, pero me da problemas de memoria creo. producto prod; ifstream fentrada; fentrada.open("prueba.dat", ios::in | ios::binary); fentrada.read(reinterpret_cast<char *>(&prod), sizeof(producto)); while (!fentrada.eof()) { cout << prod.getId() << " "; << prod.getNombre() << endl; fentrada.read(reinterpret_cast<char *>(&prod), sizeof(producto)); } //fentrada.close(); return; Link to comment Share on other sites More sharing options...
rkstro Posted July 13, 2011 Report Share Posted July 13, 2011 Mira googleando, encontre esto: http://www.java2s.com/Tutorial/Cpp/0240__F...lasstoafile.htm http://www.java2s.com/Tutorial/Cpp/0240__F...atafromfile.htm Tal vez de ahi puedes sacar la idea de como se hace Link to comment Share on other sites More sharing options...
TKA Posted July 14, 2011 Author Report Share Posted July 14, 2011 (edited) Muchas gracias, me han servido mucho esos link, te pasaste :) Después de todo no estaba tan mal, pero ahora probando cosas, he descubierto que me arroja problemas de memoria cuando mis atributos son "string", ya que al comentar todos esos atributos pude escribir y leer del archivo sin problemas. Ahora mi duda es si puedo poner string, o tendré que simplemente dejarlos como arreglos de char. PD: Alguien sabe como hacer el tipico getch() de conio.h pero en linux, g++. que quiero en algunas partes poner algo como (para que se pueda leer el cout y no se lo salte rapidamente): cout << "Presione una tecla para continuar.\n" << endl; getch(); system("clear"); // cosas. Edited July 14, 2011 by TKA Link to comment Share on other sites More sharing options...
rkstro Posted July 15, 2011 Report Share Posted July 15, 2011 Simplemente hace un cin a una variable nomas, que despues no utilices, y pedir que se aprete enter nomas, es lo que se me ocurre. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now