Fecha y hora actual: Sab 19 May, 2012 21:48 pm
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Problemas al leer un archivo binario

Responder al Tema

Índice del Foro > C, C#, Visual C++ > Problemas al leer un archivo binario

Autor Mensaje
miachm



Registrado: 16 Ene 2012
Mensajes: 1

Mensaje Publicado: Lun 16 Ene, 2012 18:18 pm

Título del mensaje: Problemas al leer un archivo binario

Responder citando

Buenas, tengo un trabajillo para la uni que consiste en hacer una especie de gestoría de biblioteca.

En unos de los apartados, me piden calcular el precio entre unas determinada fechas y guardalos en un archivo binario:

Código:
 // Guardamos las fechas entre dos periodos en un fichero binario (repeticion de la funcion de busqueda, pero sin imprimir en pantalla
     
     ofstream Buffer;
     Buffer.open(BUFFER.c_str()); // Nombre del archivo predefinido en la constante BUFFER
     
     for (int i = 0; i < elementos; i++)
         if (ComprobarFecha(Libro,Leidas[1],Leidas[0],i,elementos))
         {
              Buffer.write((char *)&Libro[i].Precio,sizeof(int)); // Guardamos precio
              Buffer.write((char *)&Libro[i].Fecha.Dia,sizeof(fecha)); // Guardamos fecha
              contador++;
         }
         
     Buffer.close();
     
     // Enunciado: CIV (obtener el precio total y medio de los libros encontrados)
     
     ifstream CargarDatos;
     CargarDatos.open(BUFFER.c_str());
     
     // Reseteamos variables
     
     Min = 0;
     Max = 0;
     contador = 0;
     
     // Empezamos a leer
     
     while(!CargarDatos.eof())
     {
              CargarDatos.read((char *)&Datos[contador],sizeof(int)); // Leemos precio
              Max += Datos[contador]; // Vamos calculando el precio total...
              CargarDatos.read((char *)&Leidas[contador],sizeof(fecha)); // Leemos la fecha
              contador++; // Añadimos un libro mas leido
     }
     
     CargarDatos.close();
     
     // Cuando terminamos, mostramos la informacion
     
     cout<<endl<<"El precio total de los libros entre las dos fechas es de "<<Max<<"$ con un precio medio de ";
     cout<<Max/contador<<"$/Libro. Hay una cantidad de "<<contador<<" libros";



Al probarlo, me aparece que los libros son 21 (correcto) y que su precio es de 5547734745... Un disparate vamos xD

Las estructuras son:

Código:
struct fecha
{
       int Anyo,Mes,Dia;
};

struct Biblioteca
{
       string Titulo, Autor;
       float Precio;
       bool Prestado;
       fecha Fecha;
};
Las variables de esta funcion son:

Código:
int Max = 0;
int Min = 0;
int contador = 0;
int Datos[elementos];
fecha Leidas[elementos];
Biblioteca Libro[elementos];
[/img]

Volver arriba
Ver perfil del usuario Enviar mensaje privado
amchacon



Registrado: 28 Dic 2011
Mensajes: 6

Mensaje Publicado: Lun 16 Ene, 2012 23:17 pm

Título del mensaje: Re: Problemas al leer un archivo binario

Responder citando

Solucionado, resulta que precio era una variable float y no un int ¬¬

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

leer archivo .dat

laephy C, C#, Visual C++ 0 Lun 14 May, 2012 20:34 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Borrar nodo de un arbol Binario de Busqueda

Martin1991 Programación en general 2 Mie 09 May, 2012 18:21 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ayuda programa archivo supermercado

Logitech Z4 C, C#, Visual C++ 2 Sab 05 May, 2012 00:40 am Ver último mensaje
El foro no contiene ningún mensaje nuevo

Lección 56: Árbol Binario - Recorrido común - E...

Kyshuo Ayame Programación en general 11 Mie 25 Abr, 2012 18:57 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Numero binario aleatorio

mike915 C, C#, Visual C++ 2 Mie 18 Abr, 2012 00:35 am Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,