【发布时间】:2016-06-22 17:10:43
【问题描述】:
对于我的一个 C++ 个人项目,我一直在研究将一些数据保存在二进制文件中。我对谷歌做了一些研究,发现了几种方法,它们或多或少归结为同一件事。但是,我一生都无法使读取或写入方法正常工作。我写的任何值,我都会以不同的方式返回。我在 Google 上对此进行了广泛的搜索并查看了 StackOverflow,但我并没有真正找到解决方案,所以我开始认为我一定忽略了一些东西,但我终生无法弄清楚是什么。
下面有两种读取和写入无符号短路的方法。
unsigned short ReadUShort(std::ifstream& ifs)
{
unsigned char buffer[2];
ifs.read((char*)buffer, 2);
unsigned short val = (buffer[0] << 8) | buffer[1];
return val;
}
void WriteUShort(std::ofstream& ofs, unsigned short val)
{
unsigned char buffer[2];
buffer[0] = (val & 0xff);
buffer[1] = ((val >> 8) & 0xff);
ofs.write((char*)buffer, 2);
}
提前感谢您的任何帮助。
【问题讨论】:
标签: c++ io binaryfiles