zoukankan      html  css  js  c++  java
  • 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工程文件

  • 相关阅读:
    物联网习题总结
    orm.TextField undefined (type orm.Ormer has no field or method TextField)
    中级软件设计师下午试题(百度文库 )
    34-Digit factorials
    解决[INS-35075] 已存在具有指定标识符的数据库实例
    PE10 Summation of primes
    构建之发阅读笔记02
    软件工程概论第十二周学习进度表
    四则运算2(改进版)
    构建之法阅读笔记01
  • 原文地址:https://www.cnblogs.com/oloroso/p/6605288.html
Copyright © 2011-2022 走看看