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

Finalmente parece que no se pueden hacer atajos, así que me resigno a leer el contenido de la lista e ir guardándolos uno a uno, e igualmente, volver a crear la lista e ir insertando los valores...
Código C++:
Ver original
  1. ListaEnteros lista1;
  2.     lista1.push_back(1);
  3.     lista1.push_back(3);
  4.     lista1.push_back(5);
  5.     lista1.push_back(7);
  6.     lista1.push_back(9);
  7.     lista1.push_back(11);
  8.     lista1.push_back(13);
  9.     /***********guardar en fichero*******************/
  10.     int tamLista=lista1.size();
  11.     ofstream ofs("borrar.dat", ios::out|ios::binary);
  12.     ofs.write(reinterpret_cast<char*>(&tamLista),sizeof(int));
  13.  
  14.     for (auto it=lista1.begin();it!=lista1.end();++it)
  15.     {
  16.         ofs.write (reinterpret_cast<char*>(&*it),sizeof(int));
  17.     }
  18.     ofs.close();
  19.     /*********recuperar de fichero***************/
  20.     ListaEnteros lista2;
  21.     int tamLista2;
  22.     ifstream ifs("borrar.dat",ios::in|ios::binary);
  23.     ifs.read(reinterpret_cast<char*>(&tamLista2),sizeof(int));
  24.     int var=0;
  25.     for (int i=0;i<tamLista2;i++)
  26.     {
  27.         ifs.read(reinterpret_cast<char*>(&var),sizeof(int));
  28.         lista2.push_back(var);
  29.     }
  30.     ifs.close();
  31.     /*********imprimir la lista*******************/
  32.     for (auto it=lista2.begin();it!=lista2.end();it++)
  33.     {
  34.         cout<<*it<<endl;
  35.     }
  36.  return 0;
  37. }