我正在尝试实现一个函数,该函数以小端字节顺序将double
写入二进制文件。
目前我已经有了BinaryWriter
类的实现:
void BinaryWriter::open_file_stream( const String& path )
{
// open output stream
m_fstream.open( path.c_str(), std::ios_base::out | std::ios_base::binary);
m_fstream.imbue(std::locale::classic());
}
void BinaryWriter::write( int v )
{
char data[4];
data[0] = static_cast<char>(v & 0xFF);
data[1] = static_cast<char>((v >> 8) & 0xFF);
data[2] = static_cast<char>((v >> 16) & 0xFF);
data[3] = static_cast<char>((v >> 24) & 0xFF);
m_fstream.write(data, 4);
}
void BinaryWriter::write( double v )
{
// TBD
}
void BinaryWriter::write( int v )
是使用Sven answer来实现的,该答案针对如何正确输出十六进制数据到文件?问题提供了解决方案。我不确定如何实现
void BinaryWriter::write( double v )
。我尝试简单地跟随
void BinaryWriter::write( int v )
的实现,但它没有奏效。我猜我没有完全理解这个实现。
谢谢大家