fread() 函数定义在 stdio.h 头文件中。它有助于将数据从指定的流读取到数组中。通过指针指定文件读取后数据需要存储的内存位置的起始地址。
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); #where stream should be a file pointer
fread() 函数接受四个参数。此函数主要用于读取二进制数据,它是 fwrite() 的互补函数。
| 参数 | 描述 | 必需/可选 |
|---|---|---|
| ptr | 指向最小大小为 size*nmemb 字节的内存块的指针 | 必需 |
| size | 要读取的每个元素的字节大小 | 必需 |
| nmemb | 元素的数量,每个元素的大小为 size 字节 | 必需 |
| stream | 指向 FILE 对象的指针,该对象指定输入流 | 必需 |
fread() 函数的返回值为成功读取的元素总数。它以 size_t 对象的形式返回,size_t 是一种整型数据类型。
| 输入 | 返回值 |
|---|---|
| 成功 | 与 nmemb 等效的整数值 |
| 错误或文件结束符 (EOF) | 小于 nmemb 的值 |
#include <stdio.h>
#include <string.h>
int main()
{
FILE *pnt;
char chr[] = "C Programming";
char buf[100];
/* Open file */
pnt = fopen("myfile.txt", "w+");
/* Write data*/
fwrite(chr, strlen(chr) + 1, 1, pnt);
fseek(pnt, 0, SEEK_SET);
/* Read and display data */
fread(buf, strlen(chr)+1, 1, pnt);
printf("%s\n", buf);
fclose(pnt);
return(0);
}
输出
C Programming
#include <stdio.h>
int main (){
int buf;
int val = 2431;
// Creating file and storing value
FILE * stream;
stream = fopen("myfile.txt", "w");
fwrite(&val;, sizeof(int), 1, stream);
fclose(stream);
// Reading value from file
stream = fopen("myfile.txt", "r");
fread(&buf;, sizeof(int), 1, stream);
printf("High score readed is: %d\n",buf);
fclose(stream);
return(0);
}
输出
High score readed is:2431