C语言fgets读取整个文本文件的内容
来源:互联网 发布:软件商店开发 编辑:程序博客网 时间:2024/05/17 05:07
#include <stdio.h>#include <stdlib.h>#include <string.h>int test_fgets(const char* filePath){ FILE* fp=fopen(filePath,"r"); if(fp==NULL) { printf("open error!%s",strerror(errno)); return -1; } char buffer[2048]={0}; while(fgets(buffer,sizeof(buffer),fp)) { printf("%s",buffer); } fclose(fp); return 0;}char* getAllFileData2(char *filePath){ FILE *fp; char *str; char buffer[4096]; int filesize; if ((fp=fopen(filePath,"r"))==NULL){ printf("打开文件%s错误 error=%s \n",filePath,strerror(errno)); return NULL; } fseek(fp,0,SEEK_END); filesize = ftell(fp); str=(char *)malloc(filesize+1); memset(str,0,filesize+1); rewind(fp); int bufsize=sizeof(buffer); //fgets的缓存大小只能为bufsize? 如果一个行数据很长怎么办? while((fgets(buffer,bufsize,fp))!=NULL){ //每次最多读取bufsize-1个字符 strcat(str,buffer); } fclose(fp); return str;}char* getAllFileData(char *filePath){ FILE *fp; char *str; char buffer[4096]; int filesize; if ((fp=fopen(filePath,"r"))==NULL){ printf("打开文件%s错误 error=%s \n",filePath,strerror(errno)); return NULL; } fseek(fp,0,SEEK_END); filesize = ftell(fp); str=(char *)malloc(filesize+1); memset(str,0,filesize+1); rewind(fp); int bufsize=sizeof(buffer); //fgets函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。 while(!feof(fp)){ fgets(buffer,bufsize,fp); strcat(str,buffer); } fclose(fp); return str;}int main(void){ test_fgets("d:/test.txt"); printf("=====================================\n"); char *p; p=getAllFileData("d:/test.txt"); if (p!=NULL) { puts(p); free(p); } return 0;}
0 0
- C语言fgets读取整个文本文件的内容
- C语言fgets读取整个文本文件的内容
- 【C++】读取整个文本文件的方法
- c语言,读取一个内容长度未知的文本文件。
- C语言中用fscanf函数读取文本文件所有内容
- c语言读取整个文件!!
- 用c语言读取文本文件
- 用C语言读取文本文件
- 关于C语言中文本文件的逐行读取的实现
- c/c++创建并读取文本文件内容
- C语言读取文本文件字符串内容不对,可能是文本编码问题
- C语言读取文件的内容
- C语言读取整个文件到内存
- fgets()逐行读取文件内容
- C语言字符串读取函数 gets()与fgets()
- [代码实例][C语言]读取文本文件
- C语言的fgets() 与 gets()
- C语言的字符串输入fgets()函数
- ViewPager+RadioGroup 实现网络加载图片的轮播
- 基于zookeeper的分布式锁实现
- JavaScript中的while和do while循环
- 学习笔记--了解Scroller
- 深入Android MediaPlayer的使用方法详解
- C语言fgets读取整个文本文件的内容
- C# 第十四章 上机1-5
- Tomcat 报 The valid characters are defined in RFC 7230 and RFC 3986
- 复习iOS动画-layer-4
- 关于Android Spinner setSelection 和 onItemSelected事件的触发顺序
- VC运行库合集
- Android中检查更新APK,以及下载APK安装。
- 自定义带删除按钮的文本框
- 2.4 国际化与本地化问题