3 回答

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

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

TA貢獻1895條經(jīng)驗 獲得超7個贊
1、C語言中:fread是一個函數(shù)。從一個文件流中讀數(shù)據(jù),最多讀取count個元素,每個元素size字節(jié),如果調(diào)用成功返回實際讀取到的元素個數(shù),如果不成功或讀到文件末尾返回 0。
函數(shù)原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
參數(shù):
buffer 用于接收數(shù)據(jù)的內(nèi)存地址
size 要讀的每個數(shù)據(jù)項的字節(jié)數(shù),單位是字節(jié)
count 要讀數(shù)據(jù)項的個數(shù),每個數(shù)據(jù)項size個字節(jié).
stream 輸入流的指針
返回值:
返回實際讀取的元素個數(shù)。如果返回值與count不相同,則可能文件結(jié)尾或發(fā)生錯誤。從ferror和feof獲取錯誤信息或檢測是否到達文件結(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)注
- 518 瀏覽
添加回答
舉報