一切我通过谷歌发现是垃圾...请注意,我想要的答案在 Ç,但是如果你用C++解决方案补充你的答案,以及那么你获得积分!
我只是想能够从二进制文件中读取一些浮点数到一个数组中
编辑:是的我知道Endian-ness ...而且我不在乎它是如何存储的.
sth*_*sth 18
如何从文件中读取浮点数完全取决于值的保存方式.一种常见的方式可能是:
void writefloat(float v, FILE *f) {
fwrite((void*)(&v), sizeof(v), 1, f);
}
float readfloat(FILE *f) {
float v;
fread((void*)(&v), sizeof(v), 1, f);
return v;
}
Run Code Online (Sandbox Code Playgroud)
float f;
if(read(fd,&f,sizeof(f))==sizeof(f))
printf("%f\n",f);
else
printf("oops\n");
Run Code Online (Sandbox Code Playgroud)
前提是它被编写为兼容的二进制表示.
read用于文件描述符,fread用于FILE*s和istream::read用于c++iostream.选择你喜欢的东西:
read(fd,&f,sizeof(f))==sizeof(f)
fread(&f,sizeof(f),1,fp)==1
fin.read((char*)&f,sizeof(f)).gcount()==sizeof(f)
Run Code Online (Sandbox Code Playgroud)