C语言文件函数

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;
 
}

输出:

C语言fread()函数:读取文件内容到缓冲区

中文乱码问题

需要将文件编码格式改为ANSI编码格式。