• DLib库Base64编解码示例


    代码

    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <string>
    #include <cstdlib>
    #include <dlib/compress_stream.h>
    #include <dlib/base64.h>
    
    using namespace dlib;
    
    int main(int argc, char** argv)
    {
        system("title Base64 Encoder");
        if (argc != 2)
        {
            std::cout << "Usage: "<<argv[0]<<" filename" << std::endl;
    
            return EXIT_FAILURE;
        }
    
        // 打开命令行指定的文件
        std::ifstream fin(argv[1], std::ios::binary);
        if (!fin) {
            std::cout << "can't open file " << argv[1] << std::endl;
            return EXIT_FAILURE;
        }
    
        std::ostringstream sout;
        std::istringstream sin;
    
        // base64编码器对象
        base64 base64_coder;
        // 数据压缩流对象
        compress_stream::kernel_1ea compressor;
    
        // 压缩文件的内容并将结果存储在字符串流sout
        compressor.compress(fin,sout);
        sin.str(sout.str());
        sout.clear();
        sout.str("");
    
        // 对压缩数据进行base64编码
        base64_coder.encode(sin,sout);
    
        // 将输出流内容放入输入流中
        sin.clear();
        sin.str(sout.str());
        sout.str("");
    
        // 输出压缩后进行Base64编码后的字符串
        std::string base64 = sin.str();
        std::cout<<"====================
    "<<base64
                 <<"
    ====================
    "<<std::endl;
    
        // 对Base64字符串解码
        sin.clear();
        sin.str(base64);
        base64_coder.decode(sin,sout);
    
        // 将输出流内容放入输入流中
        sin.clear();
        sin.str(sout.str());
        sout.str("");
        // 对解码后的数据进行解压缩,并输出到标准输出
        compressor.decompress(sin,std::cout);
        return 0;
    }
    

    输出

    测试的时候传入的是一个Qt工程文件

  • 相关阅读:
    Spring中的@AliasFor标签
    Redisson基本用法
    阿里开源的缓存框架JetCache
    动态页面技术(JSP)
    会话技术cookie&session
    HttpServletRequest
    HttpServletResponse
    request和response的中文乱码问题
    WEB简单的登录注册功能(分层)
    Servlet
  • 原文地址:https://www.cnblogs.com/oloroso/p/6605288.html
Copyright © 2020-2023  润新知