[ Foro de C ]
Hola Nacho, estoy siguiendo tu curso de "C" y tengo una pregunta:
#include <stdio.h>
int main()
{
char nombre[80] = "registro.txt";
char linea[81];
FILE* fichero;
fichero = fopen(nombre,"rt");
if (fichero ==NULL)
{
printf("Fichero no existe");
exit(1);
}
while (! feof(fichero)) {
fgets(linea,80,fichero);
if (! feof(fichero))
puts(linea);
}
fclose(fichero);
return 0;
}
En tu codigo de ejemplo # 57 (lectura de archivos con while), porque haces la condicion
if (! feof)fichro)), si el while se repite mientras no sea EOF. Se podria hacer quitandole la condicion IF. Saludos.
Se puede hacer sin el "if (! feof(fichero))", pero el comportamiento puede ser incorrecto, porque escribirás una línea cuando ya no has conseguido leer nada, de modo que quizá escribas basura o quizá repitas la última línea.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)