Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/10/2013, 01:36
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 7 meses
Puntos: 73
Respuesta: problema recorriendo un archivo en c

Cuando lees la última entrada del archivo, aún no se ha leído la marca de final de archivo. Por eso, en el bucle, intenta hacer una lectura más, que es cuando ya lee la marca de final de archivo. Cuando ocurre esto, lo que te devuelve fscanf() es lo último que había leído antes de leer el fnal de archivo. Para resolver esta aparente repetición de la última lectura, basta con hacer una comprobación justo después de fscanf():

Código C:
Ver original
  1. while(feof(archivo)==0)
  2. {
  3.     fscanf(archivo,"%s",leido);
  4.     /* Comprobar aquí si lo que se ha leído es el final del archivo */
  5.     if (feof(archivo))
  6.         break;
  7.     insertarM(toReturn,leido);//inseta en un TDA
  8.     printf("inserte %s en un multiset\n",leido);
  9.     insertarM(todos,leido);//inserta en otro multiset
  10.     printf("inserte %s en todos\n",leido);
  11. }

Saludos,