C语言读取文件大小,载入文件全部内容

版权声明:ASorb 2017-2018 个人博客地址:https://www.orbpi.cn/ 本文CSDN地址: https://blog.csdn.net/qq_42304721/article/details/81535025

在编写程序的时候,大多数需要对文件进行操作。虽然C语言函数库提供了一些对文件操作的函数,但是对于一些新手来说。如何读取文件是一个大的问题,如果只是简单的从文件中读取一个字符,可以使用getc函数读取。可是在读取一段或者整个文件的内容时,很多人都不知道如何下手,下面就简单的说说如何使用C语言读取整个文件的内容。

(对C基本掌握的人都知道fgets函数可以从文件中读取n个字节的数据,但是fgets存在一个弊端,那就是当读取遇见换行符时就会截至,这可能会导致我们不能获得想要的数据。如果有很多的数据的话,使用fgets读取出来不便于我们查找和操作。所以数据文件我们更多的是使用二进制存储。然后使用fread进行读取操作,这样读取的数据具有一定的格式和结构方便于我们的操作。如果想知道更多更详细的文件操作方法,可以关注博客或者想博主提问)。

方法:

注意:引入的头文件为stdio.h

1/写测试文件

//写入文件
void file_w(int n) {
	int i=0,p[100];
	FILE *data;
	for (i; i<n; i++,p[i]=i+2);
	data=fopen("test.orb","wb");
	fwrite(p,sizeof(int),n,data);
	fclose(data);
}

2/简单获取文件的字节数

//返回文件的字节数 
int int_num() {
	int t;
	FILE *data=fopen("test.orb","rb");
	fseek(data,0L,2);
	t=ftell(data);
	fclose(data);
	return t;
}

3/主函数

int main() {
	int n;
	printf("测试数量:");
	scanf("%d",&n);
	file_w(n);
	printf("int的数目:%d,字节数:%d\n",int_num()/sizeof(int),int_num);
	return 0;
}

测试效果图

在获取文件的字节大小后,我们可以除以变量类型的字节数,然后通过calloc开辟同样大小的空间载入数据,在通过fread进行读取。这样就可以把整个文件的数据读取出来。

猜你喜欢

转载自blog.csdn.net/qq_42304721/article/details/81535025