Foros del Web » Programación para mayores de 30 ;) » C/C++ »

duda sobre archivos binarios

Estas en el tema de duda sobre archivos binarios en el foro de C/C++ en Foros del Web. Buenas , quisiera saber si se pueden guardar contenedores de stl en archivos binarios, es decir si se podria hacer algo como: ... vector<int> a; ...
  #1 (permalink)  
Antiguo 12/02/2013, 10:01
 
Fecha de Ingreso: febrero-2013
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
duda sobre archivos binarios

Buenas , quisiera saber si se pueden guardar contenedores de stl en archivos binarios, es decir si se podria hacer algo como:

...
vector<int> a;
...
ifstream ar(....ios::binary)

ar.write((char*)& a, sizeof(a))

??

Muchas Gracias

Saludos
  #2 (permalink)  
Antiguo 12/02/2013, 10:44
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: duda sobre archivos binarios

Si pero, creo que la sintaxis es así:

Código C++:
Ver original
  1. ar.write((char*) a, sizeof(int)*a)
  #3 (permalink)  
Antiguo 12/02/2013, 12:58
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: duda sobre archivos binarios

Ojo, 'ifstream' sirve para leer, ademas que este objeto no tiene implementado el metodo 'write'; si quieres abrir un archivo para escritura tienes que usar 'ofstream' (de la misma forma 'ofstream' no tiene implementado el metodo 'read')

Saludos
vosk
  #4 (permalink)  
Antiguo 12/02/2013, 13:55
 
Fecha de Ingreso: febrero-2013
Mensajes: 3
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: duda sobre archivos binarios

si disculpen es ofstream , pero la duda sigue estando en saber si se pueden guardar contenedores de stl, necesito de alguien que este seguro que me pueda contestar , gracias a los que respondieron!
Saludos
  #5 (permalink)  
Antiguo 12/02/2013, 21:24
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Respuesta: duda sobre archivos binarios

Hola, eso que intentas hacer se conoce como serialización, C++ no lo soporta de manera directa, pero puedes utilizar la librería Boost Serialization que soporta la serialización de contenedores STL.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:15.