Non hai capito ... non c'è un ciclo in più ... la i++ è eseguita prima del controllo quindi viene comunque eseguita prima che termini il ciclo.

Prova ad invertire le due righe

codice:
i++;
while(!feof(cfPtr)){


in questo modo

codice:
while (!feof(cfPtr)) {
   i++;


ed elimina la i++ che sta alla fine del ciclo.