C語言 fread()函數(shù)
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ū)域中。
點(diǎn)擊加載更多評(píng)論>>