Programación General => C/C++ => Visual C++ => Mensaje iniciado por: blasata en Lunes 19 de Abril de 2010, 00:28
Título: guardar cadenas de fichero en array de cadenas
Publicado por: blasata en Lunes 19 de Abril de 2010, 00:28
Hola a todos, quiero guardar las cadenas de lengua.txt en un array de cadenas *msj[62], pero este código no va bien: se van sobreescribiendo y me guarda en todas las posiciones de msj la última cadena leída del archivo: :ouch:
Código: C
*msj_LCD[62], tmp_l[200];// estas variables las declaro como globales aunque se vean aquí
if(archivo_lengua!=NULL)// Si lo abrimos correctamente.
Título: Re: guardar cadenas de fichero en array de cadenas
Publicado por: ProfesorX en Lunes 19 de Abril de 2010, 20:23
Estas definiendo mal el arreglo, el arreglo debe ser definido de la siguiente manera, primero, el numero de filas que contendra el arreglo, y segundo, la longitud de la cadena mas larga de tu archivo. Si no lo haces asi, lo que pasa es que en el mejor de los casos, sobreescribes parte de las cadenas siguientes (que es lo que creo que te esta sucediendo) y en el peor de los casos, corrupcion de memoria y de codigo, que te puede llevar a un error de segment fault, fallo de segmento.
Suponiendo que tu archivo tiene 50 filas, y que la cadena mas larga es de 100 caracteres, la definicion del arreglo deberia ser:
Código: C++
char msj_LCD[50][100];
Saludos :)
Título: Re: guardar cadenas de fichero en array de cadenas
Publicado por: blasata en Lunes 19 de Abril de 2010, 21:45