你可以使用zlib库来实现文件的压缩和解压缩。这个库是一个通用的数据压缩库,它提供了很多压缩和解压缩的函数,可以在C语言中使用。你可以在这里找到一个简单的演示代码,该代码演示了如何使用zlib库来实现文件的压缩和解压缩
这里是一个简单的解压代码,使用zlib库来解压文件。你可以将这个代码复制到你的C文件中,然后编译运行它即可。这个代码使用了zlib库中的inflate函数来解压缩文件。
[C++] 纯文本查看 复制代码 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <zlib.h>
#define CHUNK 16384
int main(int argc, char **argv)
{
gzFile file;
char *outfilename;
FILE *outfile;
unsigned char buffer[CHUNK];
int err;
int len;
if (argc != 2) {
fprintf(stderr, "Usage: %s <filename>\n", argv[0]);
exit(EXIT_FAILURE);
}
outfilename = (char *)malloc(strlen(argv[1]) + strlen(".out") + 1);
strcpy(outfilename, argv[1]);
strcat(outfilename, ".out");
file = gzopen(argv[1], "rb");
if (!file) {
fprintf(stderr, "gzopen of '%s' failed\n", argv[1]);
exit(EXIT_FAILURE);
}
outfile = fopen(outfilename, "wb");
if (!outfile) {
fprintf(stderr, "failed to open '%s' for writing\n", outfilename);
exit(EXIT_FAILURE);
}
while ((len = gzread(file, buffer, CHUNK)) > 0) {
if (fwrite(buffer, 1, (unsigned)len, outfile) != len) {
fprintf(stderr, "failed to write uncompressed data\n");
exit(EXIT_FAILURE);
}
}
gzclose(file);
fclose(outfile);
return 0;
} |