ho fatto in questo modo..ma mi stampa a video 2 volte l'ultimo elemento..devo inserire fflush ?

codice:
#include <stdio.h>
#include <stdlib.h>
#define N 2
#define max 20

/*
 *
 */

struct riga {
        char nome[max];
        int punti;
    };

int main() {

	struct riga ri;

	int fine = 0;
	int i;


	FILE *cfPtr;

	cfPtr = fopen("classifica.dat", "wb");

	while (!fine)
	{
		printf("Nome Squadra : \n");
		scanf("%s", ri.nome);
		printf("Punti Squadra : \n");
		scanf("%d", &ri.punti);

		fwrite(&ri, sizeof(struct riga), 1,cfPtr);
		printf("Fine (SI=1, NO=0) ?");
		scanf("%d", &fine);
	}
	fclose(cfPtr);

	if((cfPtr = fopen("classifica.dat","rb")) == NULL){
		printf("Il file non può essere aperto");
	}
	else{

		while(!feof(cfPtr)){
		fread(&ri, sizeof(struct riga), 1, cfPtr);

		printf("%s%d\n", ri.nome, ri.punti);

		}
		fclose(cfPtr);
	}
    return 0;
}