首页 > 解决方案 > 如何使用 std::istream 而不是带有 libzip 的文件?

问题描述

我有这样的代码:

#include <libzip/zip.h>

void main()
{
    int err;
    struct zip* zip_file = zip_open("some_file.zip", 0, &err);

    struct zip_file* file_in_zip = zip_fopen_index(zip_file_, 0, 0);

    char buff[1024];
    std::ofstream exctracted("extracted_data");
    while((readed = zip_fread(file_in_zip, buff, 1024)) > 0)
    {
         exctracted.write(buff, readed);
    }

    zip_close(zip_file);
}

如果我没有在文件系统上归档(如some_file.zip),而只是std::istream代替呢?如何在struct zip*不将流保存到文件系统的情况下获取对象?我查看了libzip的文档,但不知道该怎么做。

标签: c++streamziplibzip

解决方案


推荐阅读