Click here to Skip to main content
13,195,379 members (61,929 online)
Click here to Skip to main content
Add your own
alternative version


42 bookmarked
Posted 22 Jan 2009

CBitStream - A simple C++ class for reading and writing variable-length data

, 22 Jan 2009
Rate this:
Please Sign up or sign in to vote.
An article on a simple C++ class for reading and writing variable-length data.


This article is about a simple C++ class for reading and writing variable-length data streams. This feature is often required when programming compression routines like LZW, or when dealing with binary formats like Flash or PDF. It offers the developer a possibility to write binary chunks of custom size: like 11 bits, or 27 bits, etc. So, basically, output is byte-aligned, but the inner structure can hold different length data chunks.


I found a working solution to this problem here on the CodeProject. But, this one is written in C# .NET, so I could not use it directly. I have not translated the original article, but written this one from scratch. I hope that someone will find this work useful.

Using the Code

Using the class CBitStream is very simple. Please see the code below:

#include <span class="code-string">"BitStream.h"</span>

CBitStream bitStream;
bitStream.WriteData((LPBYTE)"ANSI text...", 12);
bitStream.WriteData((LPWORD)_T("UNICODE text..."), 15);
bitStream.SaveStream(_T("Enter output file path here..."));

Points of Interest

I have found that writing the CBitStream class described in this article was not too difficult as I have thought in first place. Also, now I have a simple tool that can help me in my everyday work.


  • CBitStream class version 1.0.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer (Senior) Elektromehanika d.o.o. Nis
Serbia Serbia
He has a master degree in Computer Science at Faculty of Electronics in Nis (Serbia), and works as a C++/C# application developer for Windows platforms since 2001. He likes traveling, reading and meeting new people and cultures.

You may also be interested in...


Comments and Discussions

GeneralSpice it up with Template functions Pin
rich_malina15-Apr-11 3:07
memberrich_malina15-Apr-11 3:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.171019.1 | Last Updated 22 Jan 2009
Article Copyright 2009 by darkoman
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid