Node:Examples, Previous:Errors, Up:Usage


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."x86.dat", binfbase::NoCreate);
     // Check if we could cleanly open the file and bail out, if we
     // couldn't.
       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
     // Read an IEEE-754 double (64 bits)
     // Remember our current position in the stream
     pos = file.pos();
     // Seek to the end of the file, binio::End);
     // Write our variable i, determining its size using sizeof()
     file.writeInt(i, sizeof(i));
     // Seek back to our former position;
     // Read a byte from here
     // close the file again
     // 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.