我有一个方法,可以从一个int
数组中写入二进制文件。(可能是错误的)
void bcdEncoder::writeBinaryFile(unsigned int packedBcdArray[], int size)
{
fstream binaryIo;
binaryIo.open("PridePrejudice.bin", ios::out| ios::binary | ios::trunc);
binaryIo.seekp(0);
binaryIo.write((char*)packedBcdArray, size * sizeof(packedBcdArray[0]));
binaryIo.seekp(0);
binaryIo.close();
}
我需要现在读取二进制文件。最好是将其读取到另一个无信息损失的
unsigned int
数组中。我有类似以下代码的东西,但我不知道如何读取二进制文件,也不知道如何将其读取到一个
int
数组中。void bcdEncoder::readBinaryFile(string fileName)
{
// myArray = my dnynamic int array
fstream binaryIo;
binaryIo.open(fileName, ios::in | ios::binary | ios::trunc);
binaryIo.seekp(0);
binaryIo.seekg(0);
binaryIo.read((int*)myArray, size * sizeof(myFile));
binaryIo.close();
}
问题:
如何完成读取二进制文件的函数实现?