如何从二进制文件中读取和写入浮点数?

sep*_*oad 6 c floating-point binary file

程序应该如何从C语言或Vala语言中读取和写入二进制文件中的浮点数?

用于写入和读取的通用API通常设计为以字节格式写入.我的意思是你必须将一个字节数据的数组写入文件并以相同的格式读取.

我正在寻找一种以浮动格式编写和读取的方法.没有类型转换,无需将数字更改为字符串.可能吗?

old*_*mer 5

fwrite() 和 fread() 或 write() 和 read() 都可以正常工作。

float da, db ;
    ...
fwrite( &da, 1, sizeof(da), fpout ) ;
    ...
fread( &db, 1, sizeof(db), fpin ) ;
Run Code Online (Sandbox Code Playgroud)

  • @SepiDev:他不需要,毕竟是你在问问题;*你*尝试过吗?如果您遇到问题,请在问题中使用您正在使用的代码进行解释。一个浮点数将被写成四个字节;只要您不在具有不同浮点编码或字节顺序的系统之间交换数据,这*就会*工作。 (5认同)
  • 这会忽略浮点序列化中的字节顺序。只要您从不将该序列化形式(在本例中为文件)移动到不同字节序的机器上,它就可以工作。它还假设浮点表示是相同的(与字节顺序有点相同),但我从未见过任何不是 IEEE 754 的东西 (2认同)