读我必须用C语言编写一个程序,从二进制文件以这种方式用Python写的二进制文件用C
nCnt = 0;
for (i=0;i<h.nsph;++i) {
fread(&gp,sizeof(struct gas_particle),1,fp);
if (bGas) {
kd->p[nCnt].iOrder = nCnt;
for (j=0;j<3;++j) kd->p[nCnt].r[j] = gp.pos[j];
++nCnt;
}
}
读取数据上面的代码是不是程序的整个代码我正在使用,但只有与我的问题相关的部分。我需要读取nCnt
粒子的位置,即每个粒子的坐标。 我有一个蟒蛇阵列这些位置,它看起来像这样
pos=array([[[ 0.4786236 , 0.49046784, 0.48877147],
[ 0.47862025, 0.49042325, 0.48877267],
[ 0.47862737, 0.49039413, 0.4887735 ],
...,
[ 0.4785084 , 0.49032556, 0.48860968],
[ 0.47849332, 0.49041115, 0.48877266],
[ 0.47849161, 0.49041022, 0.48877176]]])
我应该怎么写这个数组中的二进制文件,使C代码将精细读呢?
据推测这是一个'numpy'阵列? – 2013-03-26 11:30:06
您是否检查过此文件:http://stackoverflow.com/questions/807863/how-to-output-list-of-floats-to-a-binary-file-in-python(建议的解决方案使用http:// docs .python.org/2 /库/ array.html)? – furins 2013-03-26 11:34:32
难道你不想将数据串化为通用性吗?例如,您可以将其存储在JSON中,在这种情况下,您不会依赖于排序或位数。 – 2013-03-26 11:41:39