0

我想使用 std::ifstream 加载大小为 4096x4096 像素的 16 位二进制 PGM 图像。问题是我只能加载较小的文件,例如。512x512。如果我尝试加载“大”数据,我得到的每个像素的数据始终为 0。

示例代码:

int size = width*height;
unsigned short* data = new unsigned short[size];

// Read the terrain data
for(int i = 0; i < size; i++)
{
    file >> data[i];
}

如果我手动将大小设置为较低的值,这似乎可行。任何的想法?

谢谢蒂姆

4

1 回答 1

1

operator >>不应用于二进制提取操作。相反,通过使用read文件将简单地输入字节:

file.read(reinterpret_cast<char*>(data), sizeof data);
于 2013-06-30T15:58:37.423 回答