elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al usar el fread al leer vectores en una estructura
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al usar el fread al leer vectores en una estructura  (Leído 1,291 veces)
matilp

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Problema al usar el fread al leer vectores en una estructura
« en: 22 Febrero 2017, 23:43 pm »

hola....quisiera que me ayuden a solucionar este problema ya que soy principiante y no tengo mucha idea de como resolverlo

este es el codigo:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedef struct
{
char fabr[20],cod[7];
float pot,fre;
int stock;
int serie[20];
float precio[20];
}micro;

void lectura(micro *datos,int n){
int i,j;
FILE *archivo;
if((archivo=fopen("productos.bdd","rb"))==NULL){
puts("error");
exit(1);
}
for(i=0;i<n;i++)
{
    fread(&datos,sizeof(micro),1,archivo);
}

for(i=0;i<n;i++)
{
    puts(datos.fabr);
    puts(datos.cod);
    printf("potencia:%.1f\n",datos.pot);
    printf("frecuencia:%.1f\n",datos.pot);
    printf("stock:%d\n",datos.stock);
    for(j=0;j<datos.stock;j++){
        printf("serie:%d\n",datos.serie[j]);
        printf("precio:%.1f\n",datos.precio[j]);
    }
}
fclose(archivo);
}

la lectura de los datos la hace bien excepto por los vectores precio y serie que pone cualquier cosa...he probado muchas cosas pero no se como resolverlo. Creo que el error esta en como uso el fread.

pongo esta parte del codigo nada mas porque es la que me falla. Bueno desde ya muchas gracias


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Problema al usar el fread al leer vectores en una estructura
« Respuesta #1 en: 23 Febrero 2017, 12:27 pm »

Este for no hace nada útil (si 'n' fuera 3, va a leer hasta 3 veces, pero solo va a guardar en datos el último que leyó)

Código
  1. for(i=0;i<n;i++)
  2. {
  3.    fread(&datos,sizeof(micro),1,archivo);
  4. }

También, asegúrate de que los datos en el archivo son correctos. Es raro que solo lea así las matrices.


En línea

matilp

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema al usar el fread al leer vectores en una estructura
« Respuesta #2 en: 23 Febrero 2017, 13:03 pm »

hola gracias por responder......ahi probe con esto:

fread(&datos,sizeof(micro),1,archivo);
while(!feof(archivo))
{
    i++;
    fread(&datos,sizeof(micro),1,archivo);
}


pero me sigue saliendo leyendo mal esa parte del archivo
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Problema al usar el fread al leer vectores en una estructura
« Respuesta #3 en: 23 Febrero 2017, 15:10 pm »

Insisto, no te sirve de nada leer todos los registros del archivo sobre la misma variable. Al final, solo estás leyendo el último, tenlo en cuenta. Prueba a leer 1 y ver si sigue el error. Primero, depura el programa para el primero, y luego implementas el while/for.
En línea

matilp

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Problema al usar el fread al leer vectores en una estructura
« Respuesta #4 en: 23 Febrero 2017, 15:41 pm »

dale ahora lo pruebo...muchas gracias por la ayuda!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al usar la función fscanf para leer datos en un vector.
Programación C/C++
dvc 4 3,802 Último mensaje 15 Abril 2012, 22:16 pm
por dvc
fread o alguna funcion para leer un bloc de notas
Programación C/C++
Erres 8 5,519 Último mensaje 5 Octubre 2012, 18:19 pm
por Erres
Problema en C con la funcion fread y fwrite
Programación C/C++
M01535 7 4,475 Último mensaje 1 Abril 2015, 18:05 pm
por rir3760
Leer archivo txt y validar estructura
.NET (C#, VB.NET, ASP)
elqueteconte 2 4,110 Último mensaje 25 Febrero 2016, 14:52 pm
por elqueteconte
Error que no encuentro (C - Estructura, vectores)
Programación C/C++
Geg1 7 1,214 Último mensaje 16 Noviembre 2016, 01:23 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines