Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2014, 20:03
TriN
 
Fecha de Ingreso: enero-2014
Mensajes: 47
Antigüedad: 10 años, 3 meses
Puntos: 0
Error con el buffer en archivo de texto

Buenas noches amigos de forosweb xD por aqui estoy de nuevo pidiendo de su ayuda, bueno estoy creando un pequeño programa para agregar, ver y eliminar deportistas de un programa, estoy apenas empezandolo, pero en la parte de leer, lee los datos del archivo sin problema pero me imprime el ultimo campo dos veces les muestro el ejemplo:



xD sorry por lo feo del tabuleo tengo que ver como arreglarlo xD, pues bien como pueden observar se repite el codigo 1 1, es decir siempre se repite el codigo dos veces del ultimo campo agregado, limpie el buffer con fflush(stdin) despues del fscanf pero me da el mismo error dejo el codigo a ver que consejo podrian darme gracias de antemano .

Código C:
Ver original
  1. void leer(void)
  2. {
  3.      
  4.      FILE *archivo;
  5.      char temp[80];
  6.      int a;
  7.      
  8.    
  9.  
  10.      archivo=fopen("Lista.dat","r");
  11.      if (archivo==NULL)
  12.      {
  13.                        printf("ERROR");
  14.                        }
  15.                        
  16.                        else
  17.                        {
  18.                            system("cls");
  19.                            printf("NOMBRE\t\t");
  20.                             printf("APELLIDO\t\t");
  21.                              printf("EDAD\t\t");
  22.                               printf("DEPORTE\t\t");
  23.                                printf("CODIGO\t\t\n");
  24.                                       while (!feof(archivo))
  25.                                       {
  26.                                             fscanf(archivo,"%s",&temp);
  27.                            
  28.                                             printf("%s \t\t",temp);
  29.                                            
  30.                                             }
  31.                                      
  32.                        }
  33.  
  34.                        getch();
  35.                   fclose(archivo);
  36.                
  37.              
  38.    
  39. }