必要な出力 (1111、2222、...) を取得するには、次のように変更します。
fp1 = fopen("exact_enumerated_config_442_cub_mc","r");
に:
fp1 = fopen("data.txt","r");
明確化:使用するときfopenは、読みたいファイルの名前を書く必要があります。あなたの場合、書く必要はありdata.txtませんexact_enumerated_config_442_cub_mc...この名前のファイルはありません。さらに、1 1 1 1、2 2 2 2、3 3 3 3、4 4 4 4 ...のようなデータはありません...
詳細については、次を参照してください: 
    wikibooks.org/wiki/C_Programming/C_Reference/stdio.h/fopen
これは、必要な出力を提供する「変更された」(余分/無駄/余分なものが{ }削除されてdata.txt書き込まれた) コードです: 1 1 1 1、2 2 2 2、3 3 3 3、4 4 4 4. という名前の配列を出力しbufferます。だということだ...
...データが正常にコピーされました! から : "data.txt" _ buffer[4][4]
#include"stdio.h"
#include"stdlib.h"
int main()
{
    FILE *fp1;
    int i,j;
    int buffer[4][4];
    for ( i = 0; i < 4; i++ )
        for ( j = 0; j < 4; j++ )
            buffer[i][j] = 0;
    fp1 = fopen("data.txt","r");
    for(i=0; i<4; i++)
        for(j=0; j<4; j++)
            fscanf(fp1,"%d", &buffer[i][j]);
    fclose(fp1);
    for(i=0; i<4; i++)
    {
        for(j=0; j<4; j++)
            printf("%d ",buffer[i][j]);
        printf("\n");
    }
return 0;
}
PS
data.txt含まない場合
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
しかし
1 1 1    1
2   2   2 2
3       3 3 3
4 444    // the last two elements are absent
プログラムは 1 行目、2 行目、3 行目を適切に読み取り、4 行目の出力は次のようになります。
4 444 0 0 
4、 then 、and 444then : 最後の 2 つの要素は '0' です。これは、ゼロで初期化されたため、すべての要素の値が変更されましたが、最後の 2 つはゼロのままです。00buffer