[ Foro de C ]
Ahora tengo problemas con el ejercicio de archivos no se porque se me repite la ultima linea.
este es el ejercicio:
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.
este es mi fuente:
#include <stdio.h>
#include <string.h>
int main()
{
FILE* fichero;
char frase[50];
fichero=fopen("frases.txt","wt");
printf("ingrese una frase, para terminar presione enter::");
gets(frase);
while (strcmp(frase,"")!=0)
{
fputs(frase,fichero);
fputs("\n",fichero);
printf("ingrese una frase, para terminar presione enter::");
gets(frase);
}
fclose(fichero);
/*lectura del archivo frases.txt*/
fichero=fopen("frases.txt","rt");
do
{
fgets(frase,50,fichero);
puts(frase);
}
while (!feof(fichero));
fclose(fichero);
return 0;
}
ejecutalo y veras que la ultima linea del archivo leido se repite.
Saludos.
No hace falta ejercutarlo, es un error frecuente. ;-)
Date cuenta de que lees del fichero, muestras en pantalla lo que has leído y después es cuando compruebas si has llegado al final del fichero.
Se solucionará si añades un "if" antes de mostrar en pantalla o si usas un "while" en vez de un "do-while".
(Por cierto, si se trata de una duda distinta, crea un hilo distinto, para ayudar a que el foro sea más fácil de seguir).
(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.)