Título: ayuda, leer archivos en c++ Publicado por: thxly en 31 Enero 2015, 06:18 am Hola,
bueno lo que estoy haciendo es leer un archivo y dividirlo en dos, pues hasta aquí todo bien, tengo los archivos creados con sus respectivos registros. Pero al momento de leer uno de los archivos que cree antes y poner los datos en un vector, solo ingresa la primera linea del archivo al vector. Si mando a imprimir lo que devuelve de la función getline me muestra los demás registros.No se porque solo se ingresa la primera linea del archivo. Este es el código que estoy utilizando, tal vez algún consejo? Código: vector<string> archivo::cDatos(string ruta){ Y en consola muestra(por ejemplo): linea: 4.8,3,1.4,0.1,Iris-setosa 4.7,3.2,1.6,0.2,Iris-setosa 4.6,3.4,1.4,0.3,Iris-setosa Título: Re: ayuda, leer archivos en c++ Publicado por: Orubatosu en 31 Enero 2015, 13:18 pm Sin mirar mucho en profundidad, veo que usas
Código
¿Porque no usar algo con menos problemas potenciales como? Código
Simplemente: "Mientras el objeto "fichero" no llegue al final..." Asi te aseguras de que el while pase por todas las líneas hasta el final Título: Re: ayuda, leer archivos en c++ Publicado por: rir3760 en 31 Enero 2015, 17:01 pm Pero al momento de leer uno de los archivos que cree antes y poner los datos en un vector, solo ingresa la primera linea del archivo al vector. Si mando a imprimir lo que devuelve de la función getline me muestra los demás registros.No se porque solo se ingresa la primera linea del archivo. Si agregamos esa función (ligeramente modificada) a un programa de prueba funciona correctamente así que el error que mencionas se debe generar en alguna otra parte del programa, por favor publica su código fuente completo (por supuesto en la forma mas pequeña posible).Este es el código que estoy utilizando, tal vez algún consejo? Dos sugerencias en relación a esa función son 1) Los objetos de tipo string se inicializan con una cadena vacía, no es necesaria la asignación y 2) getline retorna el objeto de tipo istream utilizado como su primer argumento, no hay porque compararlo contra NUll, quita esa comparación. ---- ¿Porque no usar algo con menos problemas potenciales como? No porque en realidad mete mas problemas.Código Simplemente: "Mientras el objeto "fichero" no llegue al final..." Las funciones feof/eof de C/C++ retornan verdadero en base a la ultima operación de lectura, por ello un bucle controlado por esas funciones tendrá una iteración de mas (a eso hay que agregar que la gran mayoría de las funciones retornan el resultado de la operación de E/S) por lo que no se recomienda su uso mas que en contados escenarios. Un saludo Título: Re: ayuda, leer archivos en c++ Publicado por: _Enko en 31 Enero 2015, 17:19 pm Y creo que el NULL estaría de mas no?
Código: while(getline(fichero,linea,'\n')){ Si la funcion retorna NULL, la sentencia del while se evaluaria como falsa? http://www.parashift.com/c++-faq/istream-and-eof.html Título: Re: ayuda, leer archivos en c++ Publicado por: thxly en 1 Febrero 2015, 07:11 am Gracias por sus respuestas. el archivo original lo puse en un struct, no se si tal vez estoy ingresando allí algo mal. Mi código para el struct: Código: struct IRIS{ Mi codigo para leer el archivo: Código: vector<IRIS> archivo::cargarDatos(string ruta){ |