【发布时间】:2019-12-03 11:56:01
【问题描述】:
我正在尝试用 Python 生成代码,并将 C 程序的变量作为输入提供。我怎么能这样做?
如果在 Python 中的两个代码我可以使用“pickle”来存储第一个的信息,然后在第二个中读取它。但是对于我一直在阅读的内容,没有类似 pickle 的方式用 C 来做(如果我错了,请纠正我,因为我对 C 几乎一无所知),即使存在这样的方式,我也不确定将它“导入”到 Python 的正确方法。
我需要保存的数据是一个“双精度数组”,实际上是内存的动态分配。
顺便说一句:我现在正在做的是获取输出的打印,将其保存到文件并在 python 中读取它,但是由于打印时的舍入,我失去了小数精度。
【问题讨论】:
-
你不能只用 python 的print more precise data 吗?
-
现在很难说出你的问题到底是什么。除非您的 C 实现真的很差,否则它应该以唯一标识所述
double的二进制表示所需的完整精度打印double值,即循环(阅读double回)不应该失去任何精度。你能想出一个小例子、观察到的结果和预期的结果吗?因为我有一种预感,你的期望在某些时候是错误的...... -
@FedericoklezCulloca:他是从 C 语言而不是 Python 语言打印。但是,是的,该问题/答案涉及相同的问题-“错误精度”,当您认为较长的小数“更好”时,最终,四舍五入的小数与唯一标识相同的位模式一样。
-
在 C 中使用
fwrite将双数组原样转储到二进制文件中,然后在 Python 中使用struct.unpack对其进行解码不是最简单的吗? -
@DevSolar 对,我很困惑。我将“作为 C 程序的变量的输入”读作“作为 C 程序 to 的变量的输入”。
标签: c python-3.x