Hi all,
I am trying to write binary data to a file, and I have the following C++ code:
(I borrowed the write & read functions from here)
u8 readU8(istream& file)
{
u8 value = '\0';
file.read((char*)value,1);
return value;
}
void writeU8(ostream &file, u8 value)
{
file.write((char*)value,1);
}
...
animationFile.open("/Users/me/Desktop/BINARY_FILE.bin", ios::out | ios::binary | ios::trunc);
if (!animationFile.is_open())
{
return 1;
}
writeU8(animationFile,u8('a'));
...
Although my program crashes and lldb returns an 'EXC_BAD_ACCESS (code = 1, address = 0x50).
What is wrong? If I change writeU8 to writeU16 (and the anonymous object to u16('a')):
void writeU16(ostream &file, u16 value)
{
u8 bytes[2];
// Extract the individual bytes from our value.
bytes[0] = (value) & 0xFF; // Low byte
bytes[1] = (value >> 8) & 0xFF; // High byte
// Write those bytes to the file.
file.write((char*)bytes,2);
}
There is no exception, but no data is written to the file.
I have also tried many different paths and filenames.
Thanks