Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2014, 15:01
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Guardar una lista en un fichero

Hola:

Pues este es mi problema:
Quiero guardar una lista en un fichero. Lo estoy haciendo así (lo he visto en StackOverflow) pero a la hora de leer la lista que recupero de un fichero tengo un error.

Este es el código:
Código C++:
Ver original
  1. #include <fstream>
  2. #include <iostream>
  3. #include <list>
  4. using namespace std;
  5. typedef list<int> ListaEnteros;
  6.  
  7.  
  8.  
  9. int main()
  10. {
  11.  
  12.     ListaEnteros lista1;
  13.     lista1.push_back(1);
  14.     lista1.push_back(3);
  15.     lista1.push_back(5);
  16.     lista1.push_back(7);
  17.     lista1.push_back(9);
  18.     lista1.push_back(11);
  19.     lista1.push_back(13);
  20.     /***********guardar en fichero*******************/
  21.     int tamLista=lista1.size();
  22.     ofstream ofs("borrar.dat", ios::out|ios::binary);
  23.     ofs.write (reinterpret_cast<char*>(&tamLista),sizeof(int));
  24.     ofs.write (reinterpret_cast<char*>(&lista1),(tamLista*sizeof(int)));
  25.     ofs.close();
  26.     /*********recuperar de fichero***************/
  27.     ListaEnteros lista2;
  28.     int tamLista2;
  29.     ifstream ifs("borrar.dat",ios::in|ios::binary);
  30.     ifs.read(reinterpret_cast<char*>(&tamLista2),sizeof(int));
  31.     lista2.resize(tamLista2);
  32.     ifs.read(reinterpret_cast<char*>(&lista2),(tamLista2*sizeof(int)));
  33.     ifs.close();
  34.     /*********imprimir la lista*******************/
  35.     for (auto it=lista2.begin();it!=lista2.end();it++)
  36.     {
  37.         cout<<*it<<endl;
  38.     }
  39.  
  40.  
  41.     return 0;
  42.  
  43. }

Bueno, pues como siempre, gracias por adelantado