Título: manejo de archivos txt Publicado por: flony en 11 Febrero 2013, 21:58 pm hola amigos bueno a sucedido algo raro mientras trataba de ahcer algo con el manejo de archivos txt.
tengo un txt que tiene nombres de ciudades y finaliza con un 1 deberia darme solo ese trozo desde el nombre hasta el 1 Citar londres blablablabla 1 compila de diez, pero ejecuto y me sale un mensaje...paris blablablabla 1 roma blablabla 1 Citar Unhandled exception at at 0x7634C41F in carta.exe: Microsoft C++ exception: std::out_of_range at memory location 0x0015F4EC. aca el codigo Código: #include <iostream> Título: Re: manejo de archivos txt Publicado por: amchacon en 12 Febrero 2013, 15:07 pm Código La librería fstream no funciona con strings (de hecho, no se como te ha llegado a compilar). Tienes que usar la función c_str() para convertir el string a char* Código
Por otro lado: Código No necesitas comprobar el booleano "good" para ver si se abre el fichero, hay una forma en la que escribes menos: Código Por otro lado, ese código tiene una ambiguedad. Y es que es posible que en algun momento se lea el texto ERROR, lo cual puede llevar a equivocaciones y a problemas. Una forma de resolverlo sería pasar el string por referencia y devolver verdadero y falso si la función acabo perfectamente: Código
Título: Re: manejo de archivos txt Publicado por: rir3760 en 12 Febrero 2013, 15:40 pm Si no tienes un libro o curso de calidad sobre C++ te recomiendo consigas uno, puedes encontrar recomendaciones mediante el motor de búsqueda de los foros.
Ademas de los problemas ya mencionados por amchacon hay otros dos en la logica del programa. 1) Utilizas la función miembro eof para controlar el bucle, usualmente no es una buena idea, en su lugar basta con verificar el estado del stream (el valor de retorno de la función getline). 2) Lees cada linea y las almacenas en la variable linea, ello tiene el efecto de descartar todas menos la ultima pero como el bucle para empezar esta mal (por el uso de eof()) las pierdes todas. Debes cambiar el bucle y utilizar un vector para almacenar todas las lineas del archivo. Mas o menos así: Código
Un saludo Título: Re: manejo de archivos txt Publicado por: flony en 12 Febrero 2013, 22:40 pm gracias rir3760 por el consejo en realidad si estoy leyendo uno, que se llama c++ como programar de deitel, en definitiva si cada libro que leo explicara detalladamente cada tema estos foros no tendrían razón de ser, deberás ver que es la aplicación practica a un caso particular de lo aprendido lo que esta mal(o sea yo), y no los conocimientos o no que tenga...si nos lo tuviera no habría echo ni una linea del código , en esencia para aprender a sumar no solo hace falta aprenderlo sino practicarlo...a cuantos no nos dolía la cabeza la regla de los signos en ejercicios combinados :rolleyes: :rolleyes:
pasando a tu aclaración mil gracias la pondré en practica y les aviso. desde ya agradezco el tiempo puesto para a todos los que leyeron y mas gracias a los que respondieron ;-) ;-) |