C 语言标准库函数 - fread()
C 语言标准库 <stdio.h>
函数 size_t fread(void ptr, size_t size, size_t nmemb, FILE stream) 从给定流 stream 读取数据到 ptr 所指向的数组中
头文件
#include <stdio.h>
函数原型
下面是 fread() 函数的原型
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
参数
- ptr : 这是指向带有最小尺寸 sizenmemb* 字节的内存块的指针
- size : 这是要读取的每个元素的大小,以字节为单位
- nmemb : 这是元素的个数,每个元素的大小为 size 字节
- stream : 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流
返回值
成功读取的元素总数会以 size_t 对象返回,size_t 对象是一个整型数据类型。 如果总数与 nmemb 参数不同,则可能发生了一个错误或者到达了文件末尾。
范例
下面的范例演示了 fread() 函数的用法
/** * file: main.c * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #include <stdio.h> #include <string.h> int main() { FILE *fp; char c[] = "简单教程,简单编程\n"; char buffer[20]; /* 打开文件用于读写 */ fp = fopen("demo.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); }
编译运行以上程序,将在当前目录下新建一个文件 demo.txt
, 然后写入内容 简单教程,简单编程
。接下来使用 fseek() 函数来重置写指针到文件的开头。
demo.txt 文件内容如下所示
简单教程,简单编程
程序运行结果如下
$ gcc main.c && ./a.out
简单教程,简单编程