Programmation en C : Fin de fichier - opération

Je suis en train de vérifier en finit pas de fichier dans la programmation en c.

Quelqu'un peut s'il vous plaît aider, je ne suis pas en mesure de comprendre ce que je fais de mal dans le code suivant.
Il imprime le dernier ensemble de lignes à deux reprises.

/* Reads the Input file. */
fp = fopen("matrix_p2.txt","r");
if(fp == NULL)
{
    printf("*** ERROR: Could not open file matrix_p2.txt\n");
}

p = 2;
while(!feof(fp))
{
    printf("n= %d, m= %d", n,m);

    for(i = n; i < N/p; i++)
        for(j = m; j < M; j++)
            fscanf(fp, "%d",&(A[i][j]));

    print_blk(A, n, m, N/p, M);
    //n = n + N/p;

    size[0] = N;
    size[1] = M;
}

fclose(fp);

D'ENTRÉE:

1 2 3 4

2 3 4 5

3 4 5 6

4 5 6 7

De SORTIE:

1 2 3 4

2 3 4 5

3 4 5 6

4 5 6 7

3 4 5 6

4 5 6 7

Mais je veux de sortie comme suit:

SORTIE

1 2 3 4

2 3 4 5

3 4 5 6

4 5 6 7

  • Ce sont 'taille' 'A', 'n', 'N', 'm', défini comme?