我有两个文件,每个文件包含一个方矩阵的值。 在我的程序中,我想提取这些值并将其放入2d静态数组中。我必须使用fread(assignment ..)。文件名和矩阵大小通过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");
}