C語言 庫函數 fread()
C語言 庫函數 fread()
C 庫函數 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 從給定流 stream 讀取數據到 ptr 所指向的數組中。
1. 聲明
下面是 fread() 函數的聲明。
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
2. 參數
- ptr -- 這是指向帶有最小尺寸 size*nmemb 字節的內存塊的指針。
- size -- 這是要讀取的每個元素的大小,以字節為單位。
- nmemb -- 這是元素的個數,每個元素的大小為 size 字節。
- stream -- 這是指向 FILE 對象的指針,該 FILE 對象指定了一個輸入流。
3. 返回值
成功讀取的元素總數會以 size_t 對象返回,size_t 對象是一個整型數據類型。如果總數與 nmemb 參數不同,則可能發生了一個錯誤或者到達了文件末尾。
4. 實例
下面的實例演示了 fread() 函數的用法。
#include <stdio.h> #include <string.h> int main() { FILE *fp; char c[] = "This is codebaoku"; char buffer[20]; /* 打開文件用于讀寫 */ fp = fopen("file.txt", "w+"); /* 寫入數據到文件 */ fwrite(c, strlen(c) + 1, 1, fp); /* 查找文件的開頭 */ fseek(fp, SEEK_SET, 0); /* 讀取并顯示數據 */ fread(buffer, strlen(c)+1, 1, fp); printf("%s\n", buffer); fclose(fp); return(0); }
讓我們編譯并運行上面的程序,這將創建一個文件 file.txt,然后寫入內容 this is codebaoku。接下來我們使用 fseek() 函數來重置寫指針到文件的開頭,文件內容如下所示:
This is codebaoku