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

Hola, el siguiente programa escribe cadenas en un fichero binario, luego los lee del fichero y finalmente las muestra por pantalla:

Código C:
Ver original
  1. #include <stdio.h> //escribe una cadena en un fichero y después lo lee y escribe en pantalla
  2.  
  3.  
  4. struct registro{
  5.    char nombre[50];
  6. };
  7.  
  8.  
  9. int   main ()
  10.    {
  11.       FILE *fich;
  12.       char op;
  13.        
  14.       struct registro datos;
  15.       /* Escritura del float en el fichero */
  16.       if ((fich = fopen ("cadenas.dat", "wb")) == NULL)
  17.          {
  18.          printf ("Error de creación del fichero\n");
  19.          
  20.          }
  21.        else{
  22.           do{
  23.            printf("Introduce una cadena: ");
  24.            scanf("%49s",datos.nombre);
  25.            fwrite (&datos, sizeof (datos), 1, fich);
  26.            printf("¿Otra? (s/n)");
  27.            scanf("%1s",&op);
  28.           }while((op == 's') || (op == 'S'));
  29.        }
  30.        fclose (fich);
  31.       /* Lectura del float del fichero */
  32.       if ((fich = fopen ("cadenas.dat", "rb")) == NULL)
  33.          {
  34.          printf ("Error de existencia del fichero\n");
  35.          
  36.          }
  37.       else{
  38.           fread (&datos, sizeof(datos), 1, fich);
  39.           while(!feof){
  40.              fread (&datos, sizeof(datos), 1, fich);
  41.           }
  42.       }
  43.       fclose (fich);
  44.      
  45.       printf ("%s\n", datos.nombre);
  46.    }

Cuando lo compilo sólo me imprime la primera cadena, ¿por qué? Por favor, contestarme pronto esta tarde tengo examen. Gracias.