[ Foro de C++ ]

Ayuda pls

05-Jun-2019 00:09
Invitado (Atasco al leer datos en un fichero)
0 Respuestas

Cuando leo el primer dato del fichero me lo hace bien, pero cuando hago la segunda vuelta del bucle, no entra en el while que me lee los datos del fichero.
El codigo es este:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (void){
   int opcion, continua, diferente,cont;
   char nombreFichero[30], login[30], password[30], loginsys[30], passwordsys[30];

   printf("Especifica el nombre del archivo (con la ruta completa si no esta en la misma carpeta que el programa.)\n");
   scanf("%s",&nombreFichero);

   printf("Que quieres hacer?\n");
   printf("\t1 - Entrar en el programa.\n");
   printf("\t2 - Darse de alta y entrar.\n");
   scanf("%i",&opcion);

   switch(opcion){
   case 1:
       printf("Introduce tu login: \n");
       scanf("%s",&login);
       printf("Introduce tu password: \n");
       scanf("%s",&password);

       break;
   case 2:
       FILE *fichero;
       if(fichero==NULL){
               printf("Error al abrir el archivo en modo lectura.\n");
       }else{
           for(diferente=0;diferente!=1;){
               fichero=fopen(nombreFichero,"r");
               for(cont=0;cont<=30;cont++){
                   loginsys[cont]=0;
                   login[cont]=0;
               }
               printf("Introduce un login: \n");
               scanf("%s",&login);

               while(fscanf(fichero,"%s %s\n",&loginsys,&passwordsys)!=EOF){
                   for(cont=0;loginsys[cont]!=00;cont++){
                       if(loginsys[cont]!=login[cont]){
                           diferente=1;
                           printf("Es diferente!!!!");
                       }
                   }
               }
               fclose(fichero);
               if(diferente==0){
                   printf("El login esta repetido.\n");
                   printf("Introduce otro login.\n");
               }

           }
       }

       break;
   }
}




(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.)