CLX C++ Libraries - base64
Author: clown

CLX C++ Libraries
Home >> base64

# Declrations

    namespace base64 {
        template <class InputIterator, class OutputIterator>
        OutputIterator encode(InputIterator first, InputIterator last,
            OutputIterator result);

        std::string encode(const char* src, size_t n);
        std::string encode(const std::string& src);

        template <class InputIterator, class OutputIterator>
        OutputIterator decode(InputIterator first, InputIterator last,
            OutputIterator result);

        std::string decode(const char* src, size_t n);
        std::string decode(const std::string& src);
    }

# Overview

base64 は，バイト列を Base64 方式で encode/decode するための関数群です． 引数には，入力データ，および文字列を指定することができます．その他のデータを encode する場合は，1Byte （char 型）の配列にデータを格納してその配列を指定して下さい．

# Example

example_base64.cpp

    #include <iostream>
    #include <string>
    #include "clx/base64.h"

    int main(int argc, char* argv[]) {
        // 入力ストリームからデータを受け取る場合
        std::istreambuf_iterator<char> input(std::cin);
        std::istreambuf_iterator<char> last;

        std::string code;
        std::insert_iterator<std::string> ss(code, code.begin());
        clx::base64::encode(input, last, ss);

        std::cout << "from std::cin" << std::endl;
        std::cout << "encode: " << code << std::endl;
        std::cout << "decode: ";
        std::ostreambuf_iterator<char> output(std::cout);
        clx::base64::decode(code.begin(), code.end(), output);
        std::cout << std::endl;
        std::cout << std::endl;

        // 文字列からデータを受け取る場合
        std::string src = "Hello, world!";
        code = clx::base64::encode(src);
        std::cout << "from std::string" << std::endl;
        std::cout << "encode: " << code << std::endl;
        std::cout << "decode: " << clx::base64::decode(code) << std::endl;

        return 0;
    }

    Result
    $ echo -n 'Hello, world!' | ./test
    from std::cin
    encode: SGVsbG8sIHdvcmxkIQ==
    decode: Hello, world!

    from std::string
    encode: SGVsbG8sIHdvcmxkIQ==
    decode: Hello, world!