一,介绍
将b.txt文件内容全部给读出来
二,代码
#include<stdio.h>
#include <stdlib.h>
void test01()//随机读写
{
FILE *fp=fopen("b.txt","r");
if (NULL==fp)
{
perror("fopen");
return;
}
//得到文件总大小
//将文件指针定位文件的尾部
fseek(fp,0,2);
int len=ftell(fp);//获取文件长度
rewind(fp);//复位文件流指针
char *msg=(char *)malloc(len+1);//根据文件总大小申请堆区空间,多申请一字节放 \0
fread(msg,len,1,fp);//读取数据
printf("len=%d\n",len);
printf("msg=%s\n",msg);
fclose(fp);//关闭
}
int main(int argc, char const *argv[])
{
test01();
return 0;
}
三,输出结果
四,详细解析
代码的主要步骤如下:
- 打开文件 "b.txt",以只读模式打开。
- 使用
fseek
函数将文件指针定位到文件的尾部。 - 使用
ftell
函数获取文件的长度。 - 使用
rewind
函数将文件指针复位到文件的开头。 - 使用
malloc
函数在堆区分配足够的空间来存储文件数据,其中len+1
用于存储字符串的结尾标志 '\0'。 - 使用
fread
函数从文件中读取数据,将其存储在msg
指向的内存空间中。 - 打印文件长度和读取到的数据。
- 使用
fclose
函数关闭文件。
这段代码的作用是读取文件 "b.txt" 的内容,并将其打印到标准输出。它使用了文件指针的定位和读取函数来实现随机读取文件数据的功能。
请确保在运行代码之前,当前目录下存在名为 "b.txt" 的文件。