Non puoi mettere l'fclose() all'interno del while.