【发布时间】:2021-06-05 23:18:00
【问题描述】:
我有一个包含浮点数的二进制文件,因此每 4 个字节都是一个浮点数。 我不确定如何以每四个字节存储为浮点数的方式进行读取,这样我就可以用它做任何我需要的事情。
这是我的代码:
int main()
{
float i;
std::ifstream inFile("bin_file", std::ios::binary);
while (inFile >> i)
{
std::cout << i;
}
inFile.close();
return 0;
}
在这种情况下,除非我将 i 定义为字符,否则它甚至不会进入 while 循环。我猜那是因为它每次读取 1 个字节并且不能将其存储为浮点数。 顺便说一句,我已经检查过了,文件打开了。
谢谢!
【问题讨论】:
-
您需要做的第一件事是确定字节序。 stackoverflow.com/questions/701624/…。
std:bit_cast是c++20转换成浮点数的好方法。 -
查看对Reading binary file to unsigned char array and write it to another [duplicate]的回答,它是重复的问题并没有解决问题(如何使用
read()处理二进制输入)。
标签: c++ filereader binaryfiles