Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: P.AGCD en 14 Julio 2011, 13:58 pm



Título: Problema con fgets
Publicado por: P.AGCD en 14 Julio 2011, 13:58 pm
Buenas os dejo el codigo, mi problema es que no consigo guardar los strings en el struct Lista_equipos.
Quiero guardar cada linea del archivo en una posicion de Lista_Equipos
linea 1 ---> Lista_Equipos[1]
linea 2 ---> Lista_Equipos[2]
...





typedef struct {
   char Nombre_Equipo [MAX];
}Lista_Equipos[50];



void LeerEquipos ( Lista_Equipos* ListaEquipos, int NumeroDeEquipos) {
   
   int i;
   char caracter;
   FILE *archivoEquipo;
   
   archivoEquipo = fopen ("Equipos.txt", "r");

if (archivoEquipo == NULL) {
   printf("NO EXISTE EL FICHERO!\n");
   exit(1);
}
   archivoEquipo = fopen ("Equipos.txt", "r");
   i=0;

   
   while (!feof(archivoEquipo)) {
      i=1;   
      
   fgets(ListaEquipos->Nombre_Equipo, MAX, archivoEquipo);
      //puts(ListaEquipos->Nombre_Equipo);    Este puts si que me escribe por pantalla una a una las lineas del archivo, es decir que me lo lee bien.

      if (caracter=='#')
      i++;
      NumeroDeEquipos++;
            
   }
   
   puts(ListaEquipos[4]->Nombre_Equipo);    El problema es que no me almacena los strings en la memoria, este puts me escribe cosas raras, solo funciona el puts(ListaEquipos[1]->Nombre_Equipo);, si pongo pongo otro valor para i no me va.
   
   fclose(archivoEquipo);
   
}


Alomejor me falta algo para almacenar lo que va leyendo o algo :S

Gracias!


Título: Re: Problema con fgets
Publicado por: satu en 14 Julio 2011, 17:24 pm
Hola

Prueba con esto

Código
  1. fgets(ListaEquipos[i]->Nombre_Equipo, MAX, archivoEquipo);
  2. puts(ListaEquipos[i]->Nombre_Equipo);
  3.  

Y quita el i=1

Saludos


Título: Re: Problema con fgets
Publicado por: P.AGCD en 14 Julio 2011, 18:00 pm
Eso funciona pero hay veces que solo tendre que escribir el el sting de la posicion 3 por ejemplo y no todos.


Título: Re: Problema con fgets
Publicado por: kiriost en 14 Julio 2011, 20:41 pm
Entonces sustituye i por el número del string en donde desees escribir.