位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 fread()函數(shù)

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-03

fread()函數(shù)實(shí)現(xiàn)對(duì)一個(gè)文件讀取一個(gè)數(shù)據(jù)塊的操作,其函數(shù)原型為:

    int fread(void *buffer,unsigned int size,unsigned int n,FILE *fp);

fread()函數(shù)的一般調(diào)用形式為:

    fread(buffer,size,count,fp);

其中:

?buffer: 一個(gè)指針,對(duì)fread()函數(shù)來說,是讀入數(shù)據(jù)的存放地址。

?size:讀取的每個(gè)數(shù)據(jù)項(xiàng)所占的字節(jié)數(shù),通常使用sizeof(數(shù)據(jù)類型名)表示。

?count:需要讀寫多少個(gè)大小為size字節(jié)的數(shù)據(jù)項(xiàng)。

?fp:文件型指針,指向要讀的文件。


fread()函數(shù)的功能是,從文件指針fp所指向的文件中,讀取count個(gè)大小為size字節(jié)的數(shù)據(jù)項(xiàng), 存放到以buffer為首地址的內(nèi)存區(qū)域中。

例如:

    fread(buffer,20,30,fp);

從fp指針?biāo)赶虻奈募凶x取30個(gè)大小為20字節(jié)的數(shù)據(jù)項(xiàng),并將其存放到buffer指針?biāo)赶虻膬?nèi)存區(qū)域中。


用fread()函數(shù)和fWrite()函數(shù)來讀寫文件,讀寫時(shí)應(yīng)采用二進(jìn)制模式,如果使用文本模式會(huì)出現(xiàn)問題。fread()函數(shù)與fscanf()函數(shù)適合于結(jié)構(gòu)體數(shù)據(jù)對(duì)文件的輸入輸出操作。例如:

    fread(buffer,5,sizeof(STU),fp);

STU為一個(gè)結(jié)構(gòu)體類型;從fp指針?biāo)赶虻奈募凶x出5個(gè)STU結(jié)構(gòu)體數(shù)據(jù),并將其存放到buffer所指向的內(nèi)存區(qū)域中。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部