C语言读取多行文件

C语言读取多行文件教程

C 语言 中,我们在使用 fgets 函数读取 文件 内容时,每次最多只能读取一行,我们要读取文件多行内容,可以使用 fread 函数

fread() 函数用来从指定文件中读取块数据。所谓块数据,也就是若干个字节的数据,可以是一个 字符,可以是一个 字符串,可以是多行数据,并没有什么限制。

C语言fread函数详解

语法

size_t fread(void *ptr, size_t size, size_t count, FILE *fp);

参数

参数 描述
ptr 用来存放读取到的数据。
size 表示每个数据块的字节数。
count 表示要读取的数据块的块数。
fp 文件指针。

返回值

返回成功读取的块数。

头文件

fread 函数在 stdio.h 的头文件里面。

技术细节

理论上,每次读取 size*count 个字节的数据。

案例

块方式一次读取整个文件

使用 fopen 函数打开文件,使用 fread 函数以块方式读文件

#include <stdio.h> #include <stdlib.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); FILE *fp = NULL; if ( (fp = fopen("c:\\1.txt", "rb+")) == NULL ) { puts("Open file failed\n"); return; } else { puts("Open file success\n"); } int arr[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int ret[12]; fwrite(arr, 4, 12, fp); puts("Write file success\n"); rewind(fp); if (fread(ret, 4, 12, fp) == NULL) { puts("Read file error\n"); } else { printf("Read file success\n"); } int i = 0; for(i = 0; i < 12; i++) { printf("%d, ", ret[i]); } fclose(fp); return 0; }

程序运行后,控制台输出如下:

15_c语言fread读取文件.png

我们使用,fread 函数读取了我们写入到文件中的 int 类型 的数据,因为我们需要读取的是 int 类型的数据,因此,我们每次读取 4 个字节,读取了 100 个数据块。

这次,我们可以看到,我们一次性读取了文件的所有内容。

C语言读取多行文件总结

fread() 函数用来从指定文件中读取块数据。所谓块数据,也就是若干个字节的数据,可以是一个字符,可以是一个字符串,可以是多行数据,并没有什么限制。