如何使用 Tcl_ReadChars 从二进制文件中读取浮点数?
How to read float from binary file using Tcl_ReadChars?
使用 Tcl API 从通道读取的首选方法是 Tcl_ReadChars()
。从二进制通道读取时,数据将存储为字节数组直到被引用,此时将完成转换。
然后我有一组函数用于从对象中检索数据:Tcl_Get{String,Double,Int}FromObj()
。但是,如果我读入一个浮点数,似乎 none 这些将做正确的事情来提取我想要的值。
在这一点上,我试图从文档中推理。 Tcl_GetDoubleFromObj()
可能会足够灵活来处理这种情况……但根据文档,情况似乎并非如此。
使用 Tcl C API,我应该如何从二进制文件中读取浮点数?
我不能发誓这是你的 Tcl_GetDoubleFromOjb()
实现的来源,但它看起来可能是它的一个版本:http://tclsrc.tyabo.com/tclObj_8c-source.html
它看起来不像是在直接转换原始双精度数。它看起来像是从 TCL 创建的对象中提取一个双精度值,而不是原始字节流。
也许您想研究一下 binary scan
作为从二进制流中提取 floats/doubles 的方法?
使用 Tcl API 从通道读取的首选方法是 Tcl_ReadChars()
。从二进制通道读取时,数据将存储为字节数组直到被引用,此时将完成转换。
然后我有一组函数用于从对象中检索数据:Tcl_Get{String,Double,Int}FromObj()
。但是,如果我读入一个浮点数,似乎 none 这些将做正确的事情来提取我想要的值。
在这一点上,我试图从文档中推理。 Tcl_GetDoubleFromObj()
可能会足够灵活来处理这种情况……但根据文档,情况似乎并非如此。
使用 Tcl C API,我应该如何从二进制文件中读取浮点数?
我不能发誓这是你的 Tcl_GetDoubleFromOjb()
实现的来源,但它看起来可能是它的一个版本:http://tclsrc.tyabo.com/tclObj_8c-source.html
它看起来不像是在直接转换原始双精度数。它看起来像是从 TCL 创建的对象中提取一个双精度值,而不是原始字节流。
也许您想研究一下 binary scan
作为从二进制流中提取 floats/doubles 的方法?