当前位置:编程学习 > C/C++ >>

Linux 下使用zlib库的crc32函数问题

1.分段读取文件,一行一行的读 ifstream file; file.open("./1.txt",ios::in); char linechar[1024]; memset(linechar, 0, sizeof(linechar)); while (file.getline(linechar,sizeof(linechar))) { crc 1= crc32(crc1,(const Bytef*)context, strlen(linechar)); } 2.读取整个文件 string name = "1.txt“; int len = getFileSize(filename);//获取文件大小 file.read(linechar,len); crc2= crc32(crc2,(const Bytef*)linechar, len); 为什么2个crc(crc1 和crc2) 的值不一样,与在线转换CRC32代码的工具比较,其中读取整个文件的正确(crc2),分段读取的错误(crc1)。。。分段读取是根据ZLIB函数库说明文档改写的
补充:ifstream file;
    file.open("./1.txt",ios::in);
    char linechar[1024];
    memset(linechar, 0, sizeof(linechar));
    while (file.getline(linechar,sizeof(linechar)))
    {
        crc1= crc32(crc1,(const Bytef*)linechar, strlen(linechar));
    }
 
修改crc32函数,改context为lianchar,输入错了
追问:crc32函数接力 用是在函数说明上看到的有例子,现在我去改一下,感谢~~
答案:不知道crc32这个函数还可以接力着用, 


你仔细看看吧
getline + getline + ... 把内容读进缓冲区 跟一次性把所有内容读进缓冲区是一样的么。
getline 是不是去掉每行的\r\n啊?
其他::) 嘿嘿, 错误在于分行读时,getline 在每行后面多加了一个 '\0' 

上一个:#include <stdio.h> int main() { int i=43; printf("%d\n",printf("%d",printf("%d",i)); return 1; }
下一个:2012年计算机二级C语言答案?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,