C语言读取文件所有内容

举报
仙士可 发表于 2023/06/21 16:33:52 2023/06/21
【摘要】 #include<stdio.h>#include<stdlib.h>#include<string.h>//函数返回fname指定文件的全部内容,如果打不开文件,则返回NULL,并显示打开文件错误char *getfileall(char *fname){FILE *fp;char *str;char txt[1000];int filesize;//打开一个文件if ((fp=fopen...

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//函数返回fname指定文件的全部内容,如果打不开文件,则返回NULL,并显示打开文件错误
char *getfileall(char *fname)
{
FILE *fp;
char *str;
char txt[1000];
int filesize;
//打开一个文件
if ((fp=fopen(fname,“r”))==NULL){
printf(“打开文件%s错误\n”,fname);
return NULL;
}
//将文件指针移到末尾
fseek(fp,0,SEEK_END);
filesize = ftell(fp);//通过ftell函数获得指针到文件头的偏移字节数。

str=(char *)malloc(filesize);//动态分配str内存

// str=malloc(filesize);//动态分配str内存
str[0]=0;//字符串置空
// memset(str,filesize*sizeof(char),0);//清空数组,字符串置空第二种用法
rewind(fp);

while((fgets(txt,1000,fp))!=NULL){//循环读取1000字节,如果没有数据则退出循环
    strcat(str,txt);//拼接字符串
}
fclose(fp);
return str;

}
int main(int argc, char *argv[])
{
char *p;
char *fname="/tmp/test.txt";
p=getfileall(fname);
if (p!=NULL) puts§;//输出字符串p
return 0;
}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。