• Viernes 3 de Mayo de 2024, 07:03

Autor Tema:  guardar cadenas de fichero en array de cadenas  (Leído 2528 veces)

blasata

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
guardar cadenas de fichero en array de cadenas
« en: Lunes 19 de Abril de 2010, 00:28 »
0
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
  1.  
  2. *msj_LCD[62], tmp_l[200];  // estas variables las declaro como globales aunque se vean aquí
  3. if(archivo_lengua!=NULL) // Si lo abrimos correctamente.
  4.          for ( a=0; a<62; a++)
  5.              { fgets(tmp_l, 200, archivo_lengua);  
  6.                msj_LCD[a]= tmp_l;
  7.              }
  8.      fclose(archivo_lengua);
  9.  
 :brickwall:

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: guardar cadenas de fichero en array de cadenas
« Respuesta #1 en: Lunes 19 de Abril de 2010, 20:23 »
0
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++
  1.  
  2. char msj_LCD[50][100];
  3.  
  4.  

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

blasata

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: guardar cadenas de fichero en array de cadenas
« Respuesta #2 en: Lunes 19 de Abril de 2010, 21:45 »
0
ok! funciona
 :beer: