函數(shù)

https://www.runoob.com/cprogramming/c-function-memchr.html

1、fread函數(shù):

是從文件流中讀取數(shù)據(jù)。

頭文件:#include "stdio.h"

fread函數(shù)用于從文件流中讀取數(shù)據(jù),其函數(shù)原型為:

size_t fread(void* buffer, size_t size, size_t count, FILE*stream);

【參數(shù)設(shè)置】

1)? buffer為接收數(shù)據(jù)的地址,對(duì)于fread來書是要讀出數(shù)據(jù)的地址,即數(shù)據(jù)保存的地址

2)? size是要讀出內(nèi)容的單字節(jié)數(shù)。

3)? count是要進(jìn)行讀出size字節(jié)的數(shù)據(jù)項(xiàng)的個(gè)數(shù)。

4)? stream為目標(biāo)文件指針。

fread函數(shù)每次從stream中最多讀取count個(gè)單元,每個(gè)單元大小為size個(gè)字節(jié),將讀取的數(shù)據(jù)放到buffer;文件流的指針后移size*count字節(jié)。

【返回值】返回實(shí)際讀取的單元個(gè)數(shù),如果小于count,則可能文件結(jié)束或者讀取出錯(cuò);可以用ferror()檢測(cè)是否讀取出錯(cuò),用feof()函數(shù),檢測(cè)是否達(dá)到文件結(jié)尾。如果size或count為0,則返回0.

注意:fwrite函數(shù)和fread函數(shù)一般用于二進(jìn)制文件的輸入輸出,盡量不要操作ASCII文件。

注意:假如定義buffer緩沖區(qū)的大小為1024且第二個(gè)參數(shù)為1時(shí),那么fread的第三個(gè)參數(shù)一定要小于等于1024,否則會(huì)出現(xiàn)錯(cuò)誤。或許大家在學(xué)的時(shí)候記得比較清楚,實(shí)際編程中有可能會(huì)忘記。再次特別說明。

下面是一段MSDN有關(guān)fread函數(shù)和fwrite函數(shù)的使用代碼:

#include

void main( void )

{

? ? FILE *stream;

? ? char list[30];

? ? int? i,numread, numwritten;


? ? if( (stream = fopen("fread.out", "w+t" )) != NULL )

? ? {

? ? ? ? ? for ( i = 0; i < 25; i++ )

? ? ? ? ? ? ? ? list[i] = (char)('z' - i);


? ? ? ? ? numwritten = fwrite( list, sizeof( char ), 25, stream );

? ? ? ? ? printf( "Wrote %d items\n", numwritten );

? ? ? ? ? fclose( stream );

? ? }

? ? else

? ? ? ? ? printf( "Problem opening the file\n" );

? ? if( (stream = fopen("fread.out", "r+t" )) != NULL )

? ? {

? ? ? ? ? numread = fread( list, sizeof( char ), 25, stream );

? ? ? ? ? printf( "Number of items read = %d\n", numread );

? ? ? ? ? printf( "Contents of buffer = %.25s\n", list );

? ? ? ? ? fclose( stream );

? ? }

? ? else

? ? ? ? ? printf( "File could not be opened\n" );

}

輸出結(jié)果

Wrote 25 items

Number of items read = 25

Contents of buffer = zyxwvutsrqponmlkjihgfedc b

————————————————

原文鏈接:https://blog.csdn.net/stf1065716904/article/details/73656036/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 錯(cuò)誤報(bào)告 perror函數(shù)簡(jiǎn)化向用戶報(bào)告特定錯(cuò)誤的過程。它的原型定義于studio.h,如下: 如果message...
    d9fc24a0c9a9閱讀 1,702評(píng)論 0 0
  • C 語言標(biāo)準(zhǔn)庫(kù)函數(shù) 函數(shù)聲明說明注意安全性int getc(FILE *stream);getc 與 fgetc ...
    shelldon1024閱讀 248評(píng)論 0 0
  • 作者: 一字馬胡 轉(zhuǎn)載標(biāo)志 【2018-03-27】 更新日志 日期更新內(nèi)容備注2018-03-27回顧以前的知...
    一字馬胡閱讀 603評(píng)論 0 3
  • C語言的基本輸入與輸出函數(shù) 1.1.1 格式化輸入輸出函數(shù)Turbo C2.0 標(biāo)準(zhǔn)庫(kù)提供了兩個(gè)控制臺(tái)格式化輸入、...
    祿子_c79b閱讀 1,469評(píng)論 0 1
  • 總結(jié)了一些開發(fā)中常用的函數(shù): usleep() //函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() //函數(shù)從二進(jìn)制...
    ADL2022閱讀 542評(píng)論 0 3

友情鏈接更多精彩內(nèi)容