elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Map: grabar en fichero // Map: leer desde fichero.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Map: grabar en fichero // Map: leer desde fichero.  (Leído 1,462 veces)
gastongaston

Desconectado Desconectado

Mensajes: 10



Ver Perfil
Map: grabar en fichero // Map: leer desde fichero.
« 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.


En línea

Perdon por tan poco.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines