Class for reading binary data
class ifstreamK : public ifstream
{
public:
ifstreamK();
Read 'size' bytes of binary data and store it into 'data'.
Returns true if reading was successful, and false otherwise
bool readK(void *data, int size);
Read string from file
bool getS(char *, const int);
Read ascii hex value from file (like "0xFFFF00")
bool readCHex(u32 &hex);
big-endian-oriented reading
bool be_getchar(u8 *c);
bool be_getshort(u16 *s);
bool be_getlong(u32 *l);
};
Class for writing binary data
class ofstreamK : public ofstream
{
public:
ofstreamK();
bool writeK(void *data, int size);
};
|
typedef struct
{
int a;
short b;
char c;
}Data;
...
class::class()
{
fs.open("file.bin", ios::in | ios::binary);
}
int class::readstruct(Data *s)
{
bool b = fs.readK(s, sizeof(Data));
cerr << "Reading " << (b ? "OK" : "Failed") << endl;
}
|
typedef struct
{
int a;
short b;
char c;
}Data;
...
class::class()
{
fs.open("file.bin", ios::out | ios::binary);
}
int class::writestruct(Data *s)
{
bool b = fs.writeK(s, sizeof(Data));
cerr << "Writing " << (b ? "OK" : "Failed") << endl;
}
|