Programación General > Visual C++

 guardar cadenas de fichero en array de cadenas

(1/1)

blasata:
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.         for ( a=0; a<62; a++)             { fgets(tmp_l, 200, archivo_lengua);                  msj_LCD[a]= tmp_l;             }     fclose(archivo_lengua);   :brickwall:

ProfesorX:
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 :)

blasata:
ok! funciona
 :beer:

Navegación

[0] Índice de Mensajes

Ir a la versión completa