Título: Map: grabar en fichero // Map: leer desde fichero. Publicado por: gastongaston en 30 Septiembre 2018, 16:03 pm Hola!
Primero que nada saludo, porque me registre hace minutos y me anime a hacerles esta pregunta. Soy un completo novato, algo que cuando vean el codigo lo van a poder apreciar jaja! Mi intencion es hacer un programa que cuando le ingreso un map <int,Persona> cuyos campos estan debidamente completados, el programa ingrese a una funcion y "copie" el contenido del map en un archivo. Eso me sale. Al menos para el primer elemento, luego comienzan los errores. Caso similar cuando quiero "leer" el contenido copiado al archivo: me sirve solo para el primer caso, despues tira errores. El codigo es el siguiente: void ingresar(int referencia, Persona per) { ofstream escritura; escritura.open("agenda.dat", ios::app | ios::binary); if (escritura.fail()) { cout << "\nError al intentar abrir ESCRITURA\n"; } map <int, Persona> buffer; map <int, Persona>::iterator it; buffer.insert(pair <int,Persona> (referencia, per)); it = buffer.begin(); escritura.write((char*)&it, sizeof(buffer)); escritura.close(); } void leer() { ifstream lectura; lectura.open("agenda.dat", ios::in | ios::binary); if (lectura.fail()) { cout << "\nERROR EN LECtURA DE ARCHIVO\n"; } map <int, Persona> buffer; map <int, Persona>::iterator it; while (!lectura.eof()) { if (!lectura.eof()) { lectura.read((char*)&it,sizeof(buffer)); cout << "\nKey: " << it->first << endl; } } lectura.close(); } desde ya, muchas gracias y espero que alguien me pueda ayudar. |