我从二进制文件中读取数据,更改数据并以二进制文件写入数据。
void VolumeData::saveBinary(std::string filePath)
{
std::string output_file = filePath + ".bin";
std::ofstream fs_dst( output_file.c_str(), std::ios::out | std::ios::binary);
fs_dst.write((char *)&width, sizeof(__int32));
fs_dst.write((char *)&height, sizeof(__int32));
fs_dst.write((char *)&depth, sizeof(__int32));
fs_dst.write((char *)&scaleX, sizeof(float));
fs_dst.write((char *)&scaleY, sizeof(float));
fs_dst.write((char *)&scaleZ, sizeof(float));
fs_dst.write((char *)data,width*height*depth*sizeof(short));
fs_dst.close();
}
但是当我在文件中写入整数值(width = 512和height = 512)时,它们在二进制文件中重复。为了看到这个,我在Hex-editor中打开原始文件和我的文件。
UPD:问题是因为我把短片写成整数。