位置:首页 > 高级语言 > C语言标准库 > fread() - C语言库函数

fread() - C语言库函数

C库函数size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 从给定的数据流中读取数据到ptr所指向的数组。

声明

以下是用fread()函数的声明。

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

参数

  • ptr -- 这是一个内存块的指针* nmemb字节的最小尺寸大小。

  • size -- 这是要读取的大小(以字节为单位)的每一个元素。

  • nmemb -- 这是元素的数目,每一个都与一个大小为size个字节。

  • stream -- 这是一个文件对象的指针,指定一个输入流。

返回值

作为为size_t对象,它是一个不可分割的数据类型,则返回成功读取的元素的总数。如果这个数字不同于nmemb参数,无论是发生错误或达到文件末尾。

例子

下面的例子显示了用fread()函数的用法。

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

int main()
{
   FILE *fp;
   char c[] = "this is yiibai";
   char buffer[20];

   /* Open file for both reading and writing */
   fp = fopen("file.txt", "w+");

   /* Write data to the file */
   fwrite(c, strlen(c) + 1, 1, fp);

   /* Seek to the beginning of the file */
   fseek(fp, SEEK_SET, 0);

   /* Read and display data */
   fread(buffer, strlen(c)+1, 1, fp);
   printf("%s
", buffer);
   fclose(fp);
   
   return(0);
}

让我们编译和运行上面的程序,这将创建一个文件file.txt的,写入的内容: this is yiibai。下一步,我们使用 fseek() 函数写指针复位到开始的文件和准备文件的内容如下: 

this is yiibai