我有一些C代碼,讀了一些「fread」,但結果不是我所期望的。這裏是我的代碼:在windows下C中數據的字節表示。 Big-endian&little endian
void main()
{
unsigned int *data =(unsigned int*)malloc(4);
static unsigned int ImageData[256][256];
char *filename= "C:\\Users\\Frank\\Documents\\Visual Studio 2012\\Projects\\UI\\UI\\bin\\Debug\\bin\\result.txt";
FILE *pfile=fopen(filename,"rb");
for (int i = 0; i < 256; i++)
for (int j = 0; j < 256; j++)
{
fread(data, 4, 1, pfile);
ImageData[i][j] =(*data);
}
fclose(pfile);
printf("\nsize=%d",sizeof(unsigned int));
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
{
printf("\npixel[%d,%d]=%d",i,j,ImageData[i][j]);
}
}
我所期待的十六進制是:
38 FC 0D 13 38 A7 D4 92 38 1F 32 B3 38 blabla...
「我無法發佈圖片,因爲我沒有10個聲望。有人告訴我爲什麼嗎?」因爲你沒有10個聲望?賺取它! – Nidhoegger
因此,很少有東西 - 首先在互聯網上,過去20多年來,全面考慮了YELLING。對你要求幫助的人大聲喧譁通常是不禮貌的。接下來說「輸出不正確」,但沒有告訴我們預期的輸出,也沒有告訴我們預期的輸出,也沒有告訴我們輸出的結果是否真的很難幫助。最後,你對文件內容的描述使我感到困惑。您需要提供更多信息。 – dman2306
爲什麼4?最好使用'unsigned int * data = malloc(sizeof * data);' – chux