读取二进制文件大小的短自上周以来停止工作
read binary file size of short stopped working since last week
我在C++(Visual studio 2017(中有一个程序,直到上周才运行良好。 基本上,我正在读取一个二进制文件:
我尝试了几个文件,只是为了确保问题出在代码上。但是在文件的排列上没有任何变化。
void getImageDimension(ifstream &inFile, unsigned int(&dim)[3]) {
for (int i = 0; i < 3; i++) {
inFile.read((char*)&dim[i], sizeof(short));
}
}
直到上周,才获得了正确的尺寸,现在(我认为自上次 Windows 更新以来(,它无法正确读取文件。我尝试了几个文件,所以问题似乎是代码。
我应该得到尺寸144 144 256
但我得到:34734224 144 32047317
有谁知道可能是什么问题?
inFile.read((char*)&dim[i], sizeof(short));
对我来说看起来不对。&dim[i]
属于int*
型,您将其视为short*
。我建议将其更改为:
short temp;
inFile.read((char*)&temp, sizeof(short));
if ( inFile )
{
// Reading into temp was successful. Use it.
dim[i] = temp;
}
else
{
// Do something with the error.
}
相关文章:
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 自 Windows 10 20H1 以来,具有单独线程的多个窗口停止工作
- C++代码停止工作错误使用cout内部函数
- LoadImage 在 Windows 更新后停止工作
- C++程序工作,但 Windows 显示"程序.exe已停止工作"
- VS 代码 C/C++ 智能感知在更新后停止工作
- 不使用与左右停止工作命名空间 std 的简单比较
- 为什么通过定义另一个指针单元格,整个代码停止工作?
- 德拉吉诺 LG01-S 收到异常数据包并停止工作
- G++ 在生成文件中使用时停止工作
- 当循环在条件C++之前停止工作时
- GCC:--静态链接到pthread的整个存档配方在最近的GCC版本中停止工作
- 正则表达式代码无缘无故停止工作
- 我的代码在第 4 个选择后停止工作
- 读取二进制文件大小的短自上周以来停止工作
- C++ 已停止工作静态映射函数
- Vscode 自动格式化代码在运行几次后停止工作
- 程序 使用链表插入数据时停止工作
- 当我尝试输入时程序停止工作
- C++程序.exe从二进制文件读取后已停止工作