3 回答

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
c語(yǔ)言中fread函數(shù)語(yǔ)法為size_t?fread(?void?*restrict?buffer,?size_t?size,?size_t?count,?FILE?*restrict?stream?)。buffer是指向要讀取的數(shù)組中首個(gè)對(duì)象的指針,size是每個(gè)對(duì)象的大?。▎挝皇亲止?jié)),count是要讀取的對(duì)象個(gè)數(shù),stream是輸入流。通過(guò)fread函數(shù)可進(jìn)行數(shù)據(jù)讀取,返回成功讀取的對(duì)象個(gè)數(shù)。

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
fread函數(shù)可從文件中讀取二進(jìn)制數(shù)據(jù)
語(yǔ)法:
A = fread(fid, count)
A = fread(fid, count, precision)
其中fid為指針?biāo)肝募械漠?dāng)前位置,count指讀取的數(shù)據(jù)個(gè)數(shù), precision表示以什么格式的數(shù)據(jù)類(lèi)型讀取數(shù)據(jù)。
例子:
fid = fopen('alphabet.txt', 'r');
c = fread(fid, 5)'
c =
65 66 67 68 69
fclose(fid);
程序說(shuō)明:alphabet文件中按順序存儲(chǔ)著26個(gè)英文字母,讀取文件之前要先打開(kāi)文件,由于未指定讀取數(shù)據(jù)的類(lèi)型,所以程序指定默認(rèn)類(lèi)型為無(wú)符號(hào)字符型即uchar,65、66、67、68、69代表A、B、C、D、E,文件用完還要記得關(guān)閉文件,以便釋放指針。

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
1、C語(yǔ)言中:fread是一個(gè)函數(shù)。從一個(gè)文件流中讀數(shù)據(jù),最多讀取count個(gè)元素,每個(gè)元素size字節(jié),如果調(diào)用成功返回實(shí)際讀取到的元素個(gè)數(shù),如果不成功或讀到文件末尾返回 0。
函數(shù)原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
參數(shù):
buffer 用于接收數(shù)據(jù)的內(nèi)存地址
size 要讀的每個(gè)數(shù)據(jù)項(xiàng)的字節(jié)數(shù),單位是字節(jié)
count 要讀數(shù)據(jù)項(xiàng)的個(gè)數(shù),每個(gè)數(shù)據(jù)項(xiàng)size個(gè)字節(jié).
stream 輸入流的指針
返回值:
返回實(shí)際讀取的元素個(gè)數(shù)。如果返回值與count不相同,則可能文件結(jié)尾或發(fā)生錯(cuò)誤。從ferror和feof獲取錯(cuò)誤信息或檢測(cè)是否到達(dá)文件結(jié)尾。
2、例程:
#include<stdio.h> #include<string.h> int main( void ) { FILE *stream; char msg[]= "this is a test" ; char buf[20]; if ((stream= fopen ( "DUMMY.FIL" , "w+" ))==NULL) { fprintf (stderr, "Cannot open outputfile.\n" ); return 0; } fwrite (msg,1, strlen (msg)+1,stream); fseek (stream,0,SEEK_SET); fread (buf, strlen (msg)+1,1,stream); printf ( "%s\n" ,buf); fclose (stream); return0; } |
- 3 回答
- 0 關(guān)注
- 538 瀏覽
添加回答
舉報(bào)