Werte aus *.txt in 2D-Array
-
Hallo,
ich habe eine *.txt Datei, die N Zeilen und 2 Spalten mit Werten hat, für N= 4 also z.B.14.56 2232.75
234.45 -536.00
-34.70 24.40
356.78 478.90Jeder Wert hat maximal 4 Stellen vor dem Komma und genau 2 danach.
Ich benutze folgenden Code:#include <stdio.h> int main() { int count; float array[4][2]; FILE *fp; if ((fp = fopen("test.txt","r"))==NULL) { fprintf(stderr, "Fehler beim Öffnen der Datei."); exit(1); } if(fread(array, 4, 8,fp) != 8) { fprintf(stderr,"Fehler beim Lesen der Datei"); exit(1); } fclose(fp); for (count =0; count < 8; count++) { printf("%f %f\n",array[count][1], array[count][2]); } return 0; }
Allerdings stimmen die eingelesenen Werte nicht. Ich vermute, dass ich die Funktion
fread( void *buffer, size_t size, size_t count, FILE *stream )
mit falschen Parametern aufrufe. Wie würded ihr das machen?
Danke
-
fread() liest die Daten binär - d.h. es erwartet die binäre Darstellung eines float-Wertes als (typischerweise) 4-Byte-Datenblock. Du hast deine Werte dort in Textform vorliegen, da mußt du sie (in einer Schleife) per fscanf() einlesen.