从std :: fstream读取浮点数将返回负零

问题描述 投票:1回答:1

我正在尝试在C ++中重新实现C#BinaryReader类的某些方法,现在我被ReadSingle() method所困扰。我有以下代码:

float BinaryReaderClass::ReadSingle() {
    float a;
    _inputStream->read(reinterpret_cast<char*>(&a), sizeof(a));
    return a;
}

我使用示例文件测试了我的代码,并且它在大多数时间都有效,除了以下事实:有时]我得到负零,例如-0.000000,而C#中的同一函数返回0.000000。

我真的不明白为什么。

我正在尝试在C ++中重新实现C#BinaryReader类的一些方法,现在我被ReadSingle()方法所困扰。我有以下代码:float BinaryReaderClass :: ReadSingle(...

c# c++ fstream
1个回答
0
投票

[BinaryReader并没有做任何不同的事情,它只是将内存中的数据解释为float,就像reinterpret_cast一样。

© www.soinside.com 2019 - 2024. All rights reserved.