| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1407 人关注过本帖
标题:gzgets 读取问题
取消只看楼主 加入收藏
size_t
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2020-6-5
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:1 
gzgets 读取问题
代码如下:输出结果只有最后的部分,没明白哪里出了问题,求教

程序代码:
#include <zlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>

char *getlines(gzFile file)
{
        size_t baselen = 10;
        char *line = (char *)malloc(baselen * sizeof(char));
        if(!line) exit(1);

        while(gzgets(file,line,baselen)!=NULL)
        {
                if(strstr(line,"\n"))   // 判断读入的内容时候含有换行符,此处有'\n',表明完整的读完一行。
                {
                        line[strlen(line)-1]='\0';
                        return line;
                }
                else         // 没有读入换行符,只读入了一行的一部分; 此时重新分配内存,再次用gzgets读取, 直到读到换行符为止。                             
                {
                        do
                        {
                                baselen += 10;
                                line = (char *)realloc(line,baselen);
                                if(!line) exit(1);
                                gzgets(file,line,baselen);
                        }while(strstr(line,"\n")==NULL);

                        line[strlen(line)-1]='\0';
                        return line;
                }
        }
        line[strlen(line)-1]='\0';
        return line;
}

int main(int argc, char *argv[])
{
        gzFile fp=gzopen(argv[1],"r");
        if(!fp) exit(1);
        int cot =0;
        char *line;
        while((line=getlines(fp))!=NULL && !gzeof(fp)) 
        { 
                cot++; 
                printf("line %d\t%s\n",cot,line);
                free(line); 
        }
        gzclose(fp);
        exit(0);
}


搜索更多相关主题的帖子: 读取 exit char line include 
2021-05-25 17:45
size_t
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2020-6-5
收藏
得分:0 
回复 3楼 rjsp
谢谢,我先研究下
2021-05-26 18:15
快速回复:gzgets 读取问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013467 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved