我正在用 visual c++ 编写代码以读取(并在控制台中查看)bin 文件中的 float ,该二进制文件包含大约 250 万个 float 。
int main(){
char* holder;
ifstream fin;
fin.open("male_16_down.bin",ios::binary|ios::in);
if(!fin){
cout<<" Error, Couldnt find the file"<<endl;
}
fin.seekg(0,ios::end);
long int file_size_bin=fin.tellg();
long int file_size=fin.tellg();
fin.seekg(0,ios::beg);
file_size=file_size/sizeof(float);
holder=new char[file_size_bin];
fin.read(holder,file_size*sizeof(float));
float data=(float)atof(holder);
cout<<data<<endl;
delete[] holder;
我知道 float 有 4 个字节,char 有 1 个字节,这段代码只输出一个数字 0,我相信 atof()
只将第一个字节转换为数字,但我想要看到整个数字,我怎样才能看到二进制文件中的所有数字,
任何帮助将不胜感激。
最佳答案
#include <fstream>
#include <iostream>
int main() {
float f;
std::ifstream fin("male_16_down.bin", std::ios::binary);
while (fin.read(reinterpret_cast<char*>(&f), sizeof(float)))
std::cout << f << '\n';
return 0;
}
关于c++ - 连续从bin文件中读取 float 并在控制台窗口中输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614581/