C语言写getline(节省空间)
来源:互联网 发布:jsp的java代码 编辑:程序博客网 时间:2024/05/23 01:11
getline功能:
将文件中的数据读取一行,存储在堆中,形成一个字符串。根据字符串个数分配120个空间,不够就加120,直到能存下为止。返回字符串首地址。并且存储所分配的空间和字符串长度。我将空间分配改成20个,不够再加20,知道能存下字符串为止。
#include <stdio.h>#include <stdlib.h>#include<string.h>ssize_t mygetline(char** line , size_t* len , FILE* fa){int i = 0;char* ch = NULL;char* sp = NULL;*line=malloc(20);*len=20;ch = fgets(*line,20,fa);if(ch==NULL)return EOF;for(i=0;i<20;i++)if((*line)[i]=='\n')return strlen(*line);while(ch!=NULL){*len+=20;*line=realloc(*line,*len);sp = *line+*len-21;ch = fgets(sp,21,fa);for(i=0;i<20;i++)if(sp[i]=='\n')return strlen(*line);}return EOF;}int main(void){FILE * fp;char * line = NULL;size_t len = 0;ssize_t read;fp = fopen("a.txt", "r");if (fp == NULL)exit(EXIT_FAILURE);while ((read = mygetline(&line, &len, fp)) != EOF) {printf("len: %d\n", len);printf("Retrieved line of length %u :\n", read);printf("%s", line);}if (line)free(line);exit(EXIT_SUCCESS);}
0 0
- C语言写getline(节省空间)
- C/C++语言里面的空间节省
- c语言命名空间,cin.get().cin.getline()
- C语言实现getline()
- [C语言]getline用法
- 节省空间
- c语言实现getline函数
- Redis节省空间
- UIScrollView 节省空间
- C++getline()函数解析
- C语言实验题——最节省材料
- (9~10)代码调优、空间节省
- Map的应用(节省空间和时间)
- Redis学习笔记之(十一)管道与节省空间
- Go语言把IP转为int存储.节省空间提高索引速度
- [数据结构]如何节省程序空间
- proto如何做到节省空间。
- 联合:节省空间的类
- 快来看看Google出品的Protocol Buffer,别只会用Json和XML了
- 浅谈对 this 指向的理解
- Android 数据存储和访问
- tomcat配置https
- 机械臂的moveit驱动
- C语言写getline(节省空间)
- js中document.write的那点事
- 高性能MYSQL笔记-mysql字段类型和字段设计规范
- response.setContentType与 request.setCharacterEncoding 区别
- ubuntu下装FoxitReader510.1117_chs_Setup.exe
- Linux安装cfitsio库、ImageJ方法
- node.js 任务3 用express框架创建web 版helloworld
- 递归函数的栈调用及优化
- 再探列表