[ Foro de C ]
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.
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
Gracias Nacho, ¿me podrías poner un ejemplo de los planteamientos? no acabo de entender como aplicar los planteamientos en código.
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.)