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

时间:2010-12-16 20:53:34

标签: c file binary floating-point

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

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

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

2 个答案:

答案 0 :(得分:4)

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

float da, db ;
    ...
fwrite( &da, 1, sizeof(da), fpout ) ;
    ...
fread( &db, 1, sizeof(db), fpin ) ;

答案 1 :(得分:-1)

在Vala,您可以这样做:

public void main() {
    float foutvalue = 5.55;
    { //Need to make vala close the output file!
        var output = FileStream.open("floatfile","w");
        output.printf("%f", foutvalue);
    }

    float finvalue = 0.0;
    {
        var input = FileStream.open("floatfile", "r");
        input.scanf("%f", out finvalue);
    }
    print(@"$finvalue\n");
}