写二进制文件时重复值

时间:2016-04-12 13:05:55

标签: c++ file binary

我从二进制文件中读取数据,更改数据并以二进制文件写入数据。

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中打开原始文件和我的文件。

Difference between binary files

UPD:问题是因为我把短片写成整数。

0 个答案:

没有答案