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.