[ Foro de C ]

Leer matriz de un fichero en c

21-Dec-2018 20:02
new programmer
3 Respuestas

Buenas, me preguntaba como leer una matriz de un documento .txt de la que no se cuantas filas/columnas tiene esta. Es decir, pueden haber varias matrices dentro del mismo fichero(siempre separadas por una fila vacía, '\0'), que varían entre ellas en filas y columnas. Gracias de antemano.


22-Dec-2018 01:08
Nacho Cabanes (+73)

Si no te indican cuántas filas tiene casa matriz, en principio se me ocurren tres planteamientos posibles:

- Usar memoria dinámica (lista en vez de array)

- Sobredimensionar

- Hacer una primera lectura para contar y luego otra para rellenar el array


22-Dec-2018 02:34
new programmer

Gracias Nacho, ¿me podrías poner un ejemplo de los planteamientos? no acabo de entender como aplicar los planteamientos en código.


05-Jan-2019 12:18
Nacho Cabanes (+73)

Perdona el retraso en contestar.

- Sobredimensionar es crear un array mucho más grande de lo que esperas necesitar (por ejemplo, con 1.000 filas), y llevas un contador que incrementas con cada línea que lees de fichero, de modo que sepas cuántas de esas 1.000 líneas están usadas realmente.

- La doble lectura es primer leer el fichero contando líneas pero sin guardar los datos en ningún sitio. Así, puedes cerrar el fichero, crear un array para esa cantidad de líneas y volver a abrir (o "rebobinar" al principio sin llegar a cerrar) para hacer una segunda lectura en la que sí guardas cada dato en su posición del array,

- Memoria dinámica... es algo mucho más trabajoso, especialmente en C (no en lenguajes "más modernos"):

https://www.aprendeaprogramar.com/mod/resource/view.php?id=656
 






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)