title: Why the last iteration repeats?
body: <p>My question refers to the while(!feof(arch)) that repeats the last registry two times. Thanks if you take some of your time to answer. I'm in first year learning basics.</p>
  
  <p>The information is on an archive, so the first input shouldn't be 's' because it isn't the first time to input. Then the program list the infomation but the last registry repeats two times.</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  typedef struct{
      int legajo;
      char nombre[30];
      int ingreso;
      int pparcial;
      int sparcial;
  } reg_alumno;
  
  reg_alumno funcionleer(void);
  
  typedef FILE * archivo; //Se define el tipo de dato "archivo".
  
  archivo arch; //Se declara una variable de archivo.
  
  int main(void){
      reg_alumno alumno,alu;
      int ca,i,j=0;
      char respuesta;
      printf("Desea ingresar datos por primera vez?");
      scanf("%c",&amp;respuesta);
      printf("Ingrese cantidad alumnos");
      scanf("%d",&amp;ca); //Pide cantidad alumnos
      if(respuesta=='s'){
          arch = fopen("alumnos.dat","w"); //Crear archivo para escribir, crea si no existe)
          for(i=0;i&lt;ca;i++){
              alumno = funcionleer(); //Lee alumno
              fseek(arch,sizeof(reg_alumno)*i,SEEK_SET); //Busca la última posición del archivo
              fwrite(&amp;alumno,sizeof(reg_alumno),1,arch); //Escribe en la última posición 
          }
      }
      else{
          arch = fopen("alumnos.dat","r+");
          while(!feof(arch)){
              fseek(arch,sizeof(reg_alumno)*j,SEEK_SET); //Pasa de registro en registro(alumno en     alumno).
              fread(&amp;alu,sizeof(reg_alumno),1,arch); //Trae a la memoria principal un alumno
              printf("Legajo N %d: %s\n",alu.legajo,alu.nombre);
              j++;
          }
      }
  fclose(arch); //Cierra el archivo
  }
  
  reg_alumno funcionleer(void){ //Función leer
      reg_alumno alumno;
      printf("Ingrese el numero de legajo:\n");
      scanf("%d",&amp;alumno.legajo);
      printf("Ingrese el nombre:\n");
      scanf("%s",alumno.nombre);
      return(alumno);
  }
  </code></pre>