C - 麻烦输入双打到数组

时间:2012-04-12 05:12:15

标签: c input scanf

我非常了解C ++并被告知将我用C ++编写的程序翻译成C以便在不同的环境中使用。我以前从未在普通C中编写过代码而且遇到了麻烦。以下函数应该读取.txt文件并将值输入到double数组中,但是每当我打印数组时,所有值都是:-92559631349317831000000000000000000000000000000000000000000000000000.00000。但是,如果我在打印前手动更改代码中的值,则会得到正确的值。这是输入功能:

void FileRead(double *AttPos)
{
    int j = 0;
    FILE *in_file;
    in_file = fopen("DragonData.txt", "r");

    if (in_file == NULL)
    {
        exit(1);
    }
    else
    {
        for(j; j<8; j++)
        {
            fscanf(in_file, "%lf", &AttPos[i]);
        }
        fclose(in_file);
    }
}

这是输入文件:

12345
0.13717085
0.91813290
0.73543816
-0.67362091
111
-63
11000

1 个答案:

答案 0 :(得分:1)

我认为这是由于代码中的错误造成的。

for(j; j<8; j++)
{
    fscanf(in_file, "%lf", &AttPos[i]);
}

那个数组索引应该是j而不是i,你的值实际上并没有被放入数组中。