AnteriorPosterior

6.3. Lectura hasta el final del fichero

  Curso: Fundamentos de programación en C, por Nacho Cabanes

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 <stdio.h>
 
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#40;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:

  • Un programa que pida al usuario que teclee frases, y las almacene en el fichero “frases.txt”. Acabará cuando el usuario pulse Intro sin teclear nada. Después deberá mostrar el contenido del fichero.
  • Un programa que pregunte un nombre de fichero y muestre en pantalla el contenido de ese fichero, haciendo una pausa después de cada 25 líneas, para que dé tiempo a leerlo. Cuando el usuario pulse intro, se mostrarán las siguientes 25 líneas, y así hasta que termine el fichero.

Actualizado el: 24-07-2014 16:43

AnteriorPosterior