[ Foro de C ]

Ficheros

08-Dec-2015 05:58
dario delgado
1 Respuestas

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.


17-Dec-2015 13:53
Nacho Cabanes (+83)

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.)