2012-04-12 7 views
0

Ich kenne C++ ziemlich gut und wurde angewiesen, ein Programm, das ich in C++ geschrieben habe, in C zu übersetzen, damit es in einer anderen Einstellung verwendet werden kann. Ich habe vorher noch nie Code in C geschrieben und stoße in Schwierigkeiten. Die folgende Funktion soll eine TXT-Datei lesen und die Werte innerhalb eines Double-Arrays eingeben. Wenn ich jedoch das Array drucke, sind alle Werte: -92559631349317831000000000000000000000000000000000000000000000000000.00000. Wenn ich jedoch einen Wert im Code vor dem Drucken manuell ändere, erhalte ich den richtigen Wert. Hier ist die Eingangsfunktion:C - Fehler beim Eingeben von Doppelpunkten in das Array

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); 
    } 
} 

Und hier ist die Eingabedatei:

12345 
0.13717085 
0.91813290 
0.73543816 
-0.67362091 
111 
-63 
11000 
+3

'& AttPos [i]' sollte sein '& AttPos [j]'. Ist das ein Tippfehler? –

+0

Wow, das war mein ganzes Problem. Ich habe versucht, das für ungefähr zwei Stunden herauszufinden. Danke vielmals. Ich brauche mehr Kaffee ... – user1328172

Antwort

1

Ich denke, es auf einen Fehler im Code zurückzuführen ist.

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

Dieser Array-Index sollte nicht ich, Ihre Werte werden nicht tatsächlich in das Array gelegt.

+0

Danke, dummer Fehler meinerseits. – user1328172

Verwandte Themen