一晩中、私はこれに対する答えを探していましたが、まだ寝ていませんが、まだ機能させることができません...バイナリファイルがあり、それを読み込んで各整数の値を取得したい...ここいくつかのコードです:
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;
}
}
}
その p の一部printf
を (%d と %i を使用して) 実行したところ、-1161602550、1213357911、994462027 のような値が得られました...何が起こっているのか本当にわかりません。p を char[5] に変更しようとしましたが、これまでのところうまくいきませんでした... よろしくお願いします...