2.10 Examples

To read some data (namely integers, floats and strings) from an ordinary binary file on your filesystem, which was also created on your architecture:

#include <binfile.h>

binifstream     file("test.dat");
int             i;
float           f;
char            string[256];

// Read a 32-bit integer
i = file.readInt(4);

// Read an IEEE-754 single (32 bits)
f = file.readFloat(binio::Single);

// Read a string until newline or max. number of chars exceeded
file.readString(string, 256, '\n');

To do I/O on a file that was created on an x86 machine (i.e. Little Endian, IEEE-754 floats), while your own architecture is something different:

#include <binfile.h>

binfstream     file;
int            i = 1234567;
long           pos;

// open the file "x86.dat" for reading and writing, but do not create
// it if it's not there.
file.open("x86.dat", binfbase::NoCreate);

// Check if we could cleanly open the file and bail out, if we
// couldn't.
if(file.error())
  return ERROR;

// Set Little Endian mode, with IEEE-754 floats.
file.setFlag(binio::BigEndian, false);   // remove flag
file.setFlag(binio::FloatIEEE);          // set flag

// as we just want a demonstration, we discard all read data right away.

// Read a 16-bit integer
file.readInt(2);

// Read an IEEE-754 double (64 bits)
file.readFloat(binio::Double);

// Remember our current position in the stream
pos = file.pos();

// Seek to the end of the file
file.seek(0, binio::End);

// Write our variable i, determining its size using sizeof()
file.writeInt(i, sizeof(i));

// Seek back to our former position
file.seek(pos);

// Read a byte from here
file.readInt(1);

// close the file again
file.close();

// and we're finished
return SUCCESS;

To wrap around a stream from the iostream library, reading data until the end of the stream:

#include <fstream>
#include <binwrap.h>

// Open the iostream stream for reading and writing in binary mode.
fstream file("test.dat", ios::in | ios::out | ios::bin);

// Wrap a binary input-only stream around it.
biniwstream bfile(&file);

// Read (and immediately discard) 24-bit integers until the end
// of the stream.
while(!bfile.eof())
  bfile.readInt(3);