整个晚上我一直在寻找这个问题的答案并且没有睡觉,但是,我无法让它工作......我有一个二进制文件,我想读取它并获取每个整数的值......在这里是一些代码:
FILE *f;
char ch;
char t1[3];
int l, c, grayScale, i, j;
int p =0;
f = fopen(pgm, "rb");
(...)
c = 0;
l = 0;
fscanf(f, "%d", &c);
fscanf(f, "%d", &l);
fscanf(f, "%d", &grayScale);
A = alocar_memoria_matriz(l,c);
for(i = 0; i<l; i++){
for(j=0; j<c; j++){
if(fread(&p,sizeof(int),1,f) !=1){
fprintf(stderr, "\nError!\n");
fclose(f);
free_memoria_matriz(A,l);
return NULL;
}else if(p>grayScale|| p<0){
fprintf(stderr, "\nError!\n");
fclose(f);
free_memoria_matriz(A,l);
return NULL;
}else{
A[i][j] = (tdf_elemento) p;
}
}
}
我做了一些printf
p (使用 %d 和 %i),我得到了 -1161602550、1213357911、994462027 之类的值......我真的不知道发生了什么,我也尝试将 p 更改为 char[5] 但是到目前为止还没有工作......提前谢谢你......