我试图从文件中读取一组值为双精度数。我可以将它们看作浮标,但它们会以双打的形式返回。
输入文件的格式为:
-800,0.0000000404038
-799.75,0.0000000406816
-799.5,0.0000000409612
-799.25,0.0000000412427
-799,0.0000000415260
.........
我得到的代码是:
int main(void)
{
int i;
static long double v[6401],vprob[6401];
FILE * vel = fopen("velprob.csv","r");
for(i=0;i<6401;i++)
{
fscanf(vel,"%Lf,%Lf\n",&v[i],&vprob[i]);
if((i%800==0))
{
printf("%Lf %Lf\n",v[i],vprob[i]);
}
}
}
输出应为
-800 0.0000000404038
-799.75 0.0000000406816
-799.5 0.0000000409612
-799.25 0.0000000412427
-799 0.0000000415260
.........
然而,我完全是零。 (虽然至少他们的格式很好......)使用float而不是double我可以读取值,但不能读取所需的精度。
编辑:我在Windows上使用MinGW和GCC
我无法在代码中看到任何明显错误,但我认为其中有一个错误!有人知道它为什么会返回零吗?