gpt4 book ai didi

c++ - 一次读取 .dat 文件两个字节

转载 作者:太空狗 更新时间:2023-10-29 23:04:48 25 4
gpt4 key购买 nike

我有一个 .dat 文件,如下所示:

NUL NUL NUL ...

所以这个 .dat 文件中的每个条目都是一个 16 位有符号整数。我想用 C++ 一次读取两个字节。这是目前我阅读它的代码

short* ReadData(char* fileName, long imgWidth, long imgHeight, long bytePerPixel)
{
short * pData = new short[imgWidth*imgHeight*bytePerPixel];
short h1;
try
{
std::ifstream input(fileName, std::ios::binary);
while(!input.eof())
{
//Read file one byte at a time
input.read(&h1, sizeof(short));
}
return pData;
}
catch(int i)
{
return NULL;
}

delete pData;
}

但它给了我错误,因为

input.read(&h1, sizeof(short));

一次读取一个字节。我想一次读取 2 个字节。无论如何我可以做到这一点吗?或者读取其中有一堆 16 位签名 int 的 .dat 文件的最佳方法是什么?谢谢

最佳答案

read 将读取您要求读取的字节数。但是您并没有将数据放入 pData 数组中。您需要将第一个参数转换为 char *

关于c++ - 一次读取 .dat 文件两个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21662520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com