Cuando lee la última fila, aún no ha leído la marca de final de archivo. Cuando intentas leer de nuevo, entonces es cuando lee la marca de fin de archivo, pero ya no hay datos, por lo que el resultado de esa lectura es (en principio) impredecible (aunque el comportamiento que he observado en varios compiladores, tanto en Windows como en Unix/Linux, es el de repetir la última lectura). El bucle de lectura debería ser, por ejemplo:
Código C:
Ver original {
fscanf(fichero
,"%d %d %d %d", &f
, &c
); break;
Matriz[f][c] = 1;
}