fscanf错误地返回0表示C中的长双精度

时间:2014-07-17 15:14:12

标签: c scanf

我试图从文件中读取一组值为双精度数。我可以将它们看作浮标,但它们会以双打的形式返回。

输入文件的格式为:

-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

我无法在代码中看到任何明显错误,但我认为其中有一个错误!有人知道它为什么会返回零吗?

0 个答案:

没有答案