Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: arthu16 en 12 Septiembre 2013, 12:23 pm



Título: problema con leer e interpretar txt
Publicado por: arthu16 en 12 Septiembre 2013, 12:23 pm
hola buenas tengo un problema, quiero leer un txt para hacer un programilla que utiliza el algoritmo de Floyd para utilizarse en una "compañia aerea", es una practica que me han pedido en la universidad y lo unico que me falla es el leer los datos del txt.

el txt tiene esta estructura.
5
Londres Oslo Madrid Roma Praga
. 90 30 150 .
120 . 70 125 .
20 . . 90 50
25 80 70 . 30
. 30 . 30 .

en el que el primer dato es un 5(ese ya lo tengo solucionado)
la segunda linea contiene el nombre de las ciudades, las cuales tengo que meterlas en varias variables para luego utilizarlas
la tercera linea y restantes son la matriz de vuelos.

Por favor necesito ayuda cuanto antes.


Título: Re: problema con leer e interpretar txt
Publicado por: eferion en 12 Septiembre 2013, 12:45 pm
No se hacen tareas... se resuelven dudas. Por este motivo no te voy a poner una sola línea de código.

Una vez has leído el 5, ya deberías saber que en la siguiente línea te vas a encontrar 5 ciudades. Dado que no creo que trabajes con memoria dinámica me ahorro los pormenores.

Presupongo que las ciudades están delimitadas por espacios o saltos de línea... facil, lee toda la línea y trocéala por los espacios, cada trozo de cadena será una de las ciudades ( hay una función en c para hacerlo ).

Después de eso ya solo tienes que recoger los datos numéricos... más de lo mismo: lees toda la línea, troceas por los espacios y recorres los trozos resultantes... si es un punto haces una cosa, si no... conviertes la cadena a números.

El último paso lo repites hasta que hayas procesado todo el archivo y... listo.

Fácil, no?


Título: Re: problema con leer e interpretar txt
Publicado por: arthu16 en 12 Septiembre 2013, 17:48 pm
Gracias por tu aporte, en ningun momento he dicho que nadie escribiese codigo, he pedido ayuda, con mi duda.

podrias decirme que funcion en c realiza eso?

creo que lo de los numeros, si supiese la funcion, seria simplemente con dos bucles for uno con i y otro con j por ejemplo y recorrer la matriz de datos entera poniendolos en su sitio, me equivoco?

Gracias.



y por cierto si que trabajo con memoria dinamica, las matrices para los numeros estan hechas con memoria dinamica con valores de n+1, dado que n=5.


Título: Re: problema con leer e interpretar txt
Publicado por: eferion en 12 Septiembre 2013, 18:50 pm
y por cierto si que trabajo con memoria dinamica, las matrices para los numeros estan hechas con memoria dinamica con valores de n+1, dado que n=5.

Si trabajas con vectores y estos no son de caracteres no es necesario hacer n+1. Eso solo pasa con los caracteres y es porque las funciones de c interpretan que una cadena de caracteres termina cuando encuentran un caracter nulo, luego para que entre ese caracter nulo necesitas n+1 huecos mínimo en el vector.

en tu caso si trabajas con matrices dinamicas necesitas, en primer lugar definir la cantidad de cadenas que tienes en este caso 5... y luego para cada una de esas 5 tienes que reservar memoria para poder almacenar las cadenas.

En cuanto al desarrollo, pues varía de si empleas o no estructuras.

podrias decirme que funcion en c realiza eso?
Gracias.

strtok.

creo que lo de los numeros, si supiese la funcion, seria simplemente con dos bucles for uno con i y otro con j por ejemplo y recorrer la matriz de datos entera poniendolos en su sitio, me equivoco?

Si vas línea a línea te sobra el segundo bucle e incluso te podrías permitir el lujo ( y sana costumbre de paso ) de crear una función específica que procesase línea a línea las secuencias de números y los colocase en su sitio.