Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


6.3. Lectura hasta el final del fichero

Normalmente no querremos leer sólo una frase del fichero, sino procesar todo su contenido. Para ayudarnos, tenemos una orden que nos permite saber si ya hemos llegado al final del fichero. Es “feof” (EOF es la abreviatura de End Of File, fin de fichero).

Por tanto, nuestro programa deberá repetirse mientras que no se acabe el fichero, así:

/*---------------------------*/
/*  Ejemplo en C nº 57:      */
/*  C057.C                   */
/*                           */
/*  Lectura hasta el final   */
/*  de un fichero de texto   */
/*                           */
/*  Curso de C,              */
/*    Nacho Cabanes          */
/*---------------------------*/

#include 

int main()
{
    FILE* fichero;
    char nombre[80] = "c:\\autoexec.bat";
    char linea[81];

    fichero = fopen(nombre, "rt");

    if (fichero == NULL)
    {
      printf("No existe el fichero!\n");
      exit(1);
    }
    
    while (! feof(fichero)) 
    {
      fgets(linea, 80, fichero);
      if (! feof(fichero)) 
        puts(linea);
    }
    fclose(fichero);
    
    return 0;
}

Esa será la estructura básica de casi cualquier programa que deba leer un fichero completo, de principio a fin: abrir, comprobar que se ha podido acceder correctamente, leer con “while !(feof(…))” y cerrar.

Ejercicios propuestos: