Escribiendo un struct en un archivo en binario

Iniciado por skan, 13 Agosto 2013, 21:56 PM

0 Miembros y 1 Visitante están viendo este tema.

skan

Buenas

Sigo leyéndome el libro de Prata y hay una sección en la que explican como escribir archivos en modo binario.

Por ejemplo definen la estructura

const int LIM = 20;
struct planet
{
char name[LIM];
double population;
double g;
};
planet pl;


Y dicen que puedes usar el modo de escritura texto, en el que hay que especificar cada miembro de la estructura uno a uno, o se puede usar el binario todo de golpe:

ofstream fout("planets.dat",
ios_base:: out | ios_base::app | ios_base::binary);
fout.write( (char *) &pl, sizeof pl);



Lo que no entiendo es porque se pone
fout.write( (char *) &pl, sizeof pl)

y no simplemente
fout.write( pl, sizeof pl)

amchacon

.write espera un puntero char* como argumento. Ahí se hace el apaño cogiendo la dirrecion de la variable (con el operador &) y convirtiendo esa dirrecion en un puntero char*.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

skan

Gracias, que rápido contestas.
No sabía que write sólo aceptaba un char*
estas son las cosas que no me gustan demasiado de C++, que te meten punteros por todas partes aunque no sean aconsejables