有一個(gè)二進(jìn)制文件,我想把里面的一個(gè)八個(gè)字節(jié)的數(shù)讀出來(lái)(其實(shí)就是1)然后我建立一個(gè)int a[];數(shù)組,然后調(diào)用fread(a,8,1,fp);fp是對(duì)應(yīng)打開(kāi)文件的指針,怎么就沒(méi)讀進(jìn)去呢?我把數(shù)組改成double 后再讀,就能讀進(jìn)去了,可是讀的不是1,是一個(gè)接近0的小數(shù),我就崩潰了,我的問(wèn)題是,第二個(gè)參數(shù),跟第一個(gè)參數(shù)有關(guān)系嗎?八個(gè)字節(jié)的數(shù)到底怎么才能讀出來(lái)?跪求高手解答!
1 回答

瀟湘沐
TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果你想把這8個(gè)字節(jié)當(dāng)成一個(gè)數(shù)來(lái)讀的話可以這樣(在VC環(huán)境下)
__int64 a;
fread(&a,sizeof(__int64),1,fp);
如果你想分別讀出這8個(gè)字節(jié)的話,可以這樣:
char a[8];
fread(a,sizeof(char),8,fp);
希望對(duì)你有幫助
__int64也可以用來(lái)表示一個(gè)整數(shù),只不過(guò)它能表示的范圍比int類型的要大,int類型占4個(gè)字節(jié),而這個(gè)__int64占8個(gè)字節(jié)。如果你用的是gcc編譯器(像DEV-C等),那應(yīng)該是long long
- 1 回答
- 0 關(guān)注
- 512 瀏覽
添加回答
舉報(bào)
0/150
提交
取消