Latest web development tutorials

C 庫函數– fread()

C 標準庫 - <stdio.h> C標準庫- <stdio.h>

描述

C庫函數size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)從給定流stream讀取數據到ptr所指向的數組中。

聲明

下面是fread() 函數的聲明。

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

參數

  • ptr --這是指向帶有最小尺寸size*nmemb字節的內存塊的指針。
  • size --這是要讀取的每個元素的大小,以字節為單位。
  • nmemb --這是元素的個數,每個元素的大小為size字節。
  • stream --這是指向FILE對象的指針,該FILE對象指定了一個輸入流。

返回值

成功讀取的元素總數會以size_t 對象返回,size_t 對像是一個整型數據類型。 如果總數與nmemb 參數不同,則可能發生了一個錯誤或者到達了文件末尾。

實例

下面的實例演示了fread() 函數的用法。

#include <stdio.h>
#include <string.h>

int main()
{
   FILE *fp;
   char c[] = "This is w3cschool";
   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 w3cschool 接下來我們使用fseek()函數來重置寫指針到文件的開頭,文件內容如下所示:

This is w3cschool

C 標準庫 - <stdio.h> C標準庫- <stdio.h>