C語(yǔ)言讀取文件流的相關(guān)函數(shù)用法簡(jiǎn)介
C語(yǔ)言fread()函數(shù):讀文件函數(shù)(從文件流讀取數(shù)據(jù))
頭文件:
#include <stdio.h>
定義函數(shù):
size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
函數(shù)說(shuō)明:fread()用來(lái)從文件流中讀取數(shù)據(jù).
參數(shù)stream 為已打開(kāi)的文件指針, 參數(shù)ptr 指向欲存放讀取進(jìn)來(lái)的數(shù)據(jù)空間, 讀取的字符數(shù)以參數(shù)size*nmemb 來(lái)決定. Fread()會(huì)返回實(shí)際讀取到的nmemb 數(shù)目, 如果此值比參數(shù)nmemb 來(lái)得小, 則代表可能讀到了文件的尾或有錯(cuò)誤發(fā)生, 這時(shí)必須用feof()或ferror()來(lái)決定發(fā)生什么情況.
返回值:返回實(shí)際讀取到的nmemb 數(shù)目。
范例
#include <stdio.h> #define nmemb 3 struct test { char name[20]; int size; } s[nmemb]; main() { FILE * stream; int i; stream = fopen("/tmp/fwrite", "r"); fread(s, sizeof(struct test), nmemb, stream); fclose(stream); for(i = 0; i < nmemb; i++) printf("name[%d]=%-20s:size[%d]=%d\n", i, s[i].name, i, s[i].size); }
執(zhí)行
name[0]=Linux! size[0]=6 name[1]=FreeBSD! size[1]=8 name[2]=Windows2000 size[2]=11
C語(yǔ)言feof()函數(shù):檢查文件流是否讀到了文件尾
頭文件:
#include <stdio.h>
定義函數(shù):
int feof(FILE * stream);
函數(shù)說(shuō)明:feof()用來(lái)偵測(cè)是否讀取到了文件尾, 尾數(shù)stream 為fopen()所返回之文件指針. 如果已到文件尾則返回非零值, 其他情況返回0.
返回值:返回非零值代表已到達(dá)文件尾.
相關(guān)文章
Qt基礎(chǔ)開(kāi)發(fā)之QString與QByteArray詳細(xì)用法與區(qū)別及QString QByteArray互轉(zhuǎn)
這篇文章主要介紹了Qt基礎(chǔ)開(kāi)發(fā)之QString與QByteArray詳細(xì)用法與區(qū)別及QString QByteArray互轉(zhuǎn),需要的朋友可以參考下2020-03-03VSCode與Keil聯(lián)合開(kāi)發(fā)STM32的流程
這篇文章主要介紹了VSCode與Keil聯(lián)合開(kāi)發(fā)STM32的流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02C語(yǔ)言鏈表實(shí)現(xiàn)商品庫(kù)存管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言鏈表實(shí)現(xiàn)商品庫(kù)存管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02