Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/06/2012, 01:03
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: Saltos de linea con fstream en C++

Lo que te pasó es lo siguiente:

Al leer el fichero, cuando lees la última línea, aún no ha leído la marca de final de fichero. Cuando intentas leer de nuevo, entonces es cuando te detecta el final del archivo, pero te devuelve como leído la última lectura "buena" que hizo. Por eso, en tu salida te aparece repetida la última línea. Si la solución que aplicaste funciona, perfecto, pero quizás sea más fácil así:

Código C++:
Ver original
  1. while (!leer.eof())     //Verifico si hay algo para leer
  2. {
  3.     leer >> valor;      //leo cada linea
  4.     if (leer.eof())     // Compruebo si he leido la marca de final de fichero
  5.         break;          // Si es así, finalizo el bucle de lectura
  6.     // AQUI CONTINÚO EL PROCESADO DE LOS DATOS DEL FICHERO...
  7.     ...
  8. }