C语言 fread()
函数 用于读取文件若干字节数据内容到缓冲区。该函数既可以操作二进制文件又可以操作文本文件。
它可以读取多行文件内容,而fgets()函数只能读取单行文件内容,遇到换行符结束。
语法
size_t fread ( void *buffer, size_t size, size_t count, FILE *fp );
参数
- buffer:读取文件内容的缓冲区,可以是数组、变量、结构体等。
- size:读取的 基本单元 字节大小 , 单位是字节 , 一般是 buffer 缓冲的单位大小 ;
- 如果 buffer 缓冲区是 char 数组 , 则该参数的值是 sizeof(char) ;
- 如果 buffer 缓冲区是 int 数组 , 则该参数的值是 sizeof(int) ;
- count:读取的基本单元个数。
- fp:文件指针。
返回值
返回读取的基本单元个数。
例子
现介绍一个简单的例子,了解C语言 fread()
函数 的使用方法。
先准备一个文件yxjc123.txt 内容如下:
C语言文件函数fread()
yxjc123.com 介绍C语言文件函数的使用。
这是该文件的第3行内容。
这是该文件的第4行内容。
这里结合 fopen(),fclose()函数介绍该函数的使用:
#include <stdio.h>
#include<math.h>
int main( )
{
FILE *file; //定义文件指针
char buffer[1024] = {0};//缓冲区 char为基本单元
file = fopen("d:/yxjc123.txt", "rb");//打开文件
if(NULL == file) {
perror("打开文件失败");
return -1;
}
//读取文件
fread(buffer, sizeof(char), sizeof(buffer), file);
printf("%s\n", buffer); //输出读取的内容
fclose(file); //关闭文件
getchar();
return 0;
}
输出:
中文乱码问题
需要将文件编码格式改为ANSI
编码格式。