2
« en: Sábado 22 de Mayo de 2010, 10:43 »
Buenas es mi primer mensaje en este foro, y esque ya estoy agobiadisimo con el programa que debo hacer, haber el tema es que tengo que hacer una funcion donde le pase precio y fecha de unos libros y me lo guarde en un archivo binario (todo esta en una estructura), con la fecha no tengo problema porque son enteros pero con los float me esribe numeros larguisimos, he probado con cast y no me funciona, hacer vector de enteros para poner el precio pero tampoco ya no se que hacer alguien me dice como hacerlo o me da alguna idea?? Os dejo el codigo que tengo ahora mismo.
void GuardarFechas (Vector libro, int i)
{
ofstream fich;
float* ptf = &libro.precio;
fich.open ("prueba.bin", ios::binary | ios::app);
if (!fich)
cout << " Error al abrir el archivo ";
else
{
fich.write (reinterpret_cast<char*> (&ptf), sizeof(float));
fich.write ((char *) (& libro.fecha), sizeof(libro.fecha));
}
fich.close ();
}
Normalmente lo tenia asi:
void GuardarFechas (Vector libro, int i)
{
ofstream fich;
float* ptf = &libro.precio;
fich.open ("prueba.bin", ios::binary | ios::app);
if (!fich)
cout << " Error al abrir el archivo ";
else
{
fich.write ((char*) (&libro.precio), sizeof(float));
fich.write ((char *) (& libro.fecha), sizeof(libro.fecha));
}
fich.close ();
}
y bueno la estructura que tengo es:
struct Fecha
{
int dia;
int mes;
int anyo;
};
struct Libro
{
string titulo;
string autor;
float precio;
Fecha fecha;
};
Y un vector de la estructura Libro.
Espero que alguno podais ayudarme