第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

c語(yǔ)言中fread函數(shù)怎么用?

c語(yǔ)言中fread函數(shù)怎么用?

SSM
慕的地10843 2019-02-21 19:15:11
有一個(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)打開文件的指針,怎么就沒(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)?跪求高手解答!
查看完整描述

3 回答

?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(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

查看完整回答
反對(duì) 回復(fù) 2019-03-26
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

fread
  功 能: 從一個(gè)流中讀數(shù)據(jù)
  函數(shù)原型: size_t fread(void *buffer,size_t size,size_t count,FILE *stream); 
  參 數(shù):
  1.用于接收數(shù)據(jù)的地址(指針)(buffer)
  2.單個(gè)元素的大小(size) :?jiǎn)挝皇亲止?jié)而不是位,例如讀取一個(gè)int型數(shù)據(jù)就是4個(gè)字節(jié)
  3.元素個(gè)數(shù)(count)
  4.提供數(shù)據(jù)的文件指針(stream)
  返回值:讀取的元素的個(gè)數(shù)
因?yàn)槟阕x的是二進(jìn)制文件,你fopen的時(shí)候要以fopen(“file”,‘rb’);去讀;fread函數(shù)中間的size很關(guān)鍵,如果你一次讀size個(gè)字節(jié)(你那里是8個(gè)字節(jié)),而你的內(nèi)容沒(méi)有size那么大,就會(huì)讀失敗。所以建議讀的時(shí)候1個(gè)字節(jié)1個(gè)字節(jié)的讀,讀n次。
fread(a,1,n,fp);返回的是讀的元素的次數(shù),即它的個(gè)數(shù)。
而你的二進(jìn)制文件是按位算的;int型的數(shù)組a來(lái)保存“1”,說(shuō)明你的“1”要占4個(gè)字節(jié),“1”的二進(jìn)制是 0000 0000 0000 0001,所以你讀的時(shí)候fread(a,1,4,fp);只能讀4個(gè)字節(jié),也就是分4次讀。讀8個(gè)字節(jié)的結(jié)果就不是"1"了。



查看完整回答
反對(duì) 回復(fù) 2019-03-26
?
烙印99

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊

unsigned char a[8];
fread(a,8,1,fp);
然后在對(duì)a的元素按需求處理。

如果聲明成double,必須在寫文件的時(shí)候?qū)懭氲淖兞恳彩莇ouble,用double讀出來(lái)才對(duì)。
寫入字節(jié),用double讀出來(lái)肯定不對(duì),double是浮點(diǎn),不是整數(shù),使用8個(gè)字節(jié)來(lái)存儲(chǔ),1個(gè)符號(hào)位,11位階數(shù),52位尾數(shù)。

查看完整回答
反對(duì) 回復(fù) 2019-03-26
  • 3 回答
  • 0 關(guān)注
  • 1061 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)