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: