У меня есть два файла, каждый из которых содержит значения квадратной матрицы.В моей программе я хочу извлечь эти значения и поместить их в 2d статические массивы.Я должен использовать fread (присваивание ..). Имена файлов и размер матриц передаются через argv.Тем не менее, только первое значение каждой матрицы читается, поэтому вывод с printf будет:
2 2 2 and 4 4 4
2 2 2 4 4 4
2 2 2 4 4 4
Вот мой код.Полагаю, я совершил глупую и простую ошибку, но не знаю, какая именно.
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char **argv){
int i,j;
int res;
int n=atoi(argv[3]);
int tab1[n][n];
int tab2[n][n];
FILE *f1;
f1=fopen(argv[1],"r");
if(f1==NULL){
perror("Error f1");
return EXIT_FAILURE;
}
else {
for(i=0;i<n;i++){
for(j=0;j<n;j++){
fread(&(tab1[i][j]),sizeof(int),1,f1);
}
}
FILE *f2;
f2=fopen(argv[2],"r");
if(f2==NULL){
perror("Error f2");
return EXIT_FAILURE;
}
else {
for(i=0;i<n;i++){
for(j=0;j<n;j++){
fread(&(tab2[i][j]),sizeof(int),1,f2);
}
}
fclose(f2);
}
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%d ",tab1[i][j]);
printf("\n");
}
printf("\n");
//displaying the matrixes
for(i=0;i<3;i++){
for(j=0;j<3;j++)
printf("%d ",tab2[i][j]);
printf("\n");
}