栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言 怎么样一次性读取文件的所有内容?

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言 怎么样一次性读取文件的所有内容?

下面是一个文件 TestFile.txt

Hello,World.
This is xxx.
Hello.
那么,我们如何使用C语言读取它?
方法很简单

#include 
#include 
#include 

char* readAll(const char* filename) {
	char* data;
	FILE* fp = fopen(filename, "r");
	fseek(fp, 0, SEEK_END);
	int size = (int)ftell(fp);
	data = (char*)malloc(sizeof(size) * sizeof(char));
	memset(data, 0, size);
	fseek(fp, 0, SEEK_SET);
	fread(data, size, size, fp);
	fclose(fp);
	return data;
}
int main() {
	printf("%s", readAll("F://Code//TestFile.txt"));
	return 0;
}
解释

fseek函数可将文件流的指针移动到某个位置,SEEK_END表示移动的文件的末尾,此时使用ftell函数可以获取当前流的位置(等价于告诉了大小),返回一个long值,这边使用强制转换转换为int值
已经获取到size,为data分配空间并且初始化,使文件流指针回到文件开头,在读取size个字节到data内,读取完成,关闭文件,返回需要的值

输出结果
Hello,World.
This is xxx.
Hello.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号