2012-04-12 4 views
0

私はC++をよく知っていて、C++で書かれたプログラムを別の設定で使うためにCに翻訳するように言われました。前にC言語でコードを書くことは一度もありませんでした。次の関数は、.txtファイルを読み込んで二重配列に値を入力することになっていますが、配列を出力するたびにすべての値は-92559631349317831000000000000000000000000000000000000000000000000000.00000です。しかし、印刷前にコード内の値を手動で変更すると、正しい値が得られます。ここで入力機能は次のとおりです。C - 問題の入力が配列に二倍になる

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 
+3

'&AttPos [i]'は '&AttPos [j]'でなければなりません。それはタイプミスですか? –

+0

うわー、それは私の全部の問題でした。私はこれを約2時間にわたって把握しようとしています。どうもありがとう。私はもっ​​とコーヒーが必要です... – user1328172

答えて

1

私はそれはあなたのコード内のミスが原因だと思います。

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

この配列インデックスはjではないはずです。値は実際に配列に入れられません。

+0

私のところにありがとう、愚かな間違い。 – user1328172

関連する問題