C語言 庫(kù)函數(shù) fread()
C語言 庫(kù)函數(shù) fread()
C語言 標(biāo)準(zhǔn)庫(kù) - <stdio.h>
C 庫(kù)函數(shù) size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 從給定流 stream 讀取數(shù)據(jù)到 ptr 所指向的數(shù)組中。
1. 聲明
下面是 fread() 函數(shù)的聲明。
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
2. 參數(shù)
- ptr -- 這是指向帶有最小尺寸 size*nmemb 字節(jié)的內(nèi)存塊的指針。
- size -- 這是要讀取的每個(gè)元素的大小,以字節(jié)為單位。
- nmemb -- 這是元素的個(gè)數(shù),每個(gè)元素的大小為 size 字節(jié)。
- stream -- 這是指向 FILE 對(duì)象的指針,該 FILE 對(duì)象指定了一個(gè)輸入流。
3. 返回值
成功讀取的元素總數(shù)會(huì)以 size_t 對(duì)象返回,size_t 對(duì)象是一個(gè)整型數(shù)據(jù)類型。如果總數(shù)與 nmemb 參數(shù)不同,則可能發(fā)生了一個(gè)錯(cuò)誤或者到達(dá)了文件末尾。
4. 實(shí)例
下面的實(shí)例演示了 fread() 函數(shù)的用法。
#include <stdio.h> #include <string.h> int main() { FILE *fp; char c[] = "This is codebaoku"; char buffer[20]; /* 打開文件用于讀寫 */ fp = fopen("file.txt", "w+"); /* 寫入數(shù)據(jù)到文件 */ fwrite(c, strlen(c) + 1, 1, fp); /* 查找文件的開頭 */ fseek(fp, SEEK_SET, 0); /* 讀取并顯示數(shù)據(jù) */ fread(buffer, strlen(c)+1, 1, fp); printf("%s\n", buffer); fclose(fp); return(0); }
讓我們編譯并運(yùn)行上面的程序,這將創(chuàng)建一個(gè)文件 file.txt,然后寫入內(nèi)容 this is codebaoku。接下來我們使用 fseek() 函數(shù)來重置寫指針到文件的開頭,文件內(nèi)容如下所示:
This is codebaoku
相關(guān)文章
- C++ 修飾符類型
- C++ 結(jié)構(gòu) struct
- C++ 接口
- C語言 教程
- C語言 程序結(jié)構(gòu)
- C語言 標(biāo)準(zhǔn)庫(kù) <math.h>
- C語言 標(biāo)準(zhǔn)庫(kù) <time.h>
- C# 判斷語句
- C# 屬性 Property
- C++ 傳遞指針給函數(shù)
- C++ 多維數(shù)組
- C++ 傳值調(diào)用
- C++ 拷貝構(gòu)造函數(shù)
- C++ 友元函數(shù)
- C++ this 指針
- C++ 下標(biāo)運(yùn)算符 [] 重載
- C# 隊(duì)列(Queue)
- C# do…while 循環(huán)
- C# break 語句
- C# 嵌套 if 語句