Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/06/2010, 04:50
minette1988
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: mostrar datos de un fichero binario por pantalla

Así, ¿ está bien?

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. struct registro{
  5.    char nombre[50];
  6. };
  7.  
  8.  
  9. int   main ()
  10.    {
  11.       FILE *fich;
  12.       char nom_fich[50];
  13.       char op;
  14.       long int num_registros;
  15.       int i;
  16.       struct registro datos;
  17.       struct registro *datos_arreglo;
  18.  
  19.       printf("Introduzca nombre del fichero: ");
  20.       scanf("%49s",nom_fich);
  21.       /* Escritura del float en el fichero */
  22.       if ((fich = fopen (nom_fich, "wb")) == NULL)
  23.          {
  24.          printf ("Error de creación del fichero\n");
  25.          
  26.          }
  27.        else{
  28.           do{
  29.            printf("Introduce una cadena: ");
  30.            scanf("%49s",datos.nombre);
  31.            fwrite (&datos, sizeof (datos), 1, fich);
  32.            printf("¿Otro? (s/n)");
  33.            scanf("%1s",&op);
  34.           }while((op == 's') || (op == 'S'));
  35.        }
  36.        fclose (fich);
  37.  
  38.        /* Lectura del float del fichero */
  39.              
  40.       if ((fich = fopen (nom_fich, "rb")) == NULL)
  41.          {
  42.          printf ("Error de existencia del fichero\n");
  43.          
  44.          }
  45.       else{
  46.            fseek(fich,0,SEEK_END);
  47.            num_registros=ftell/sizeof(registro);
  48.            datos_arreglo=registro[num_registros];
  49.            rewind(fich);
  50.            fread(datos_arreglo,sizeof(registro),num_registros,fich);
  51.       }
  52.       fclose (fich);
  53.      
  54.       for(i=0; i<num_registros; i++);
  55.            printf("%s\n", datos_arreglo[i].nombre);
  56. }

Cuando lo compilo me da este error: En la función ‘main’:
float.c:47: error: ‘registro’ no se declaró aquí (primer uso en esta función)
float.c:47: error: (Cada identificador no declarado solamente se reporta una vez
float.c:47: error: para cada funcion en la que aparece.)