fread函数怎么调用,怎样写
1 回答

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
你可以把 fread 的功能看作是“從文件流中讀取一組對(duì)象到指定的數(shù)組中”
它的參數(shù)的含義是這樣的
fread( ????一個(gè)指針,指向要保存讀取內(nèi)容的數(shù)組。是的,你可以把這個(gè)看作是存入數(shù)組中 ????讀取對(duì)象的大小,以字節(jié)為單位 ????讀取對(duì)象的個(gè)數(shù) ????文件流,函數(shù)就從這個(gè)流中讀 )
它的返回值表示成功讀取了多少個(gè)對(duì)象,可以通過(guò)“檢查其是否等于應(yīng)讀個(gè)數(shù)”來(lái)判斷是否成功讀取。
不過(guò)注意:如果文件流中已經(jīng)沒(méi)有內(nèi)容了,fread 也會(huì)返回小于應(yīng)讀個(gè)數(shù)的值或 0。所以返回值不等于應(yīng)讀個(gè)數(shù)不一定就是讀取失敗,也許是讀到文件末尾了,應(yīng)該用 feof 或 ferror 做進(jìn)一步判斷。
比如,假設(shè)文件流 fp 中存了一組(比如 3 個(gè))int 數(shù)據(jù),你就可以這樣讀?。?/p>
int?data[3];??//?先聲明一個(gè)能存?3?個(gè)?int?的數(shù)組,后面數(shù)據(jù)會(huì)存到這里 size_t?count?=?fread(data,?sizeof(int),?3,?fp); if?(count?==?3) ????//?通過(guò)返回值判斷為成功讀取了?3?個(gè)?int
雖然我把這個(gè)解說(shuō)成讀取數(shù)組,當(dāng)然,只讀取一個(gè)對(duì)象也沒(méi)問(wèn)題。假設(shè)上面例子中只讀一個(gè) int:
int?data;??//?數(shù)據(jù)會(huì)存到這個(gè)?data?里 if?(fread(&data,?sizeof(int),?1,?fp)?==?1)??//?第一個(gè)參數(shù)傳入?data?的地址即可 ????//?根據(jù)返回值作判斷
- 1 回答
- 0 關(guān)注
- 939 瀏覽
添加回答
舉報(bào)
0/150
提交
取消