mit fscanf double-Werte auslesen
-
Hallo,
folgenden Code hab ich geschrieben, mit dem Double-Werte wie 1.90949836E-03 aus einer Txt-Datei ausgelesen und angezeigt werden sollen. Die Zahlen werden aber nicht richtig erkannt. Für jede eingelesene Zahl wird 0.000000 ausgegeben. Findet jemand den Fehler?
#include <stdio.h> int main() { FILE *file; double numbers[30][2]; int i,k; file = fopen("readN2.txt", "r"); if(file==NULL) { printf("Error: can't open file.\n"); return 1; } else { printf("File opened successfully.\n"); i = 0 ; k = 0 ; while(!feof(file)) { fscanf(file, "%f", &numbers[i][k]); printf("%f\n", numbers[i][k]); k++; fscanf(file, "%f", &numbers[i][k]); printf("%f\n", numbers[i][k]); k--; i++; } fclose(file); return 0; } }
-
Auf den ersten Blick fällt mir kein Fehler auf.
Für mich interessant wäre in dem Fall, wie du die Daten gespeichert hast.
Da du mit double-werten arbeitest, bietet sich %lf an, das steht für long float und entspricht eher einem double-wert.
-
Auf den ersten Blick fällt mir kein Fehler auf.
Für mich interessant wäre in dem Fall, wie du die Daten gespeichert hast.
Da du mit double-werten arbeitest, bietet sich %lf an, das steht für long float und entspricht eher einem double-wert.
-
Auf den ersten Blick fällt mir kein Fehler auf.
Für mich interessant wäre in dem Fall, wie du die Daten gespeichert hast.
Da du mit double-werten arbeitest, bietet sich %lf an, das steht für long float und entspricht eher einem double-wert.
-
Danke!!! Den Tipp hab ich gebraucht.
Mit
fscanf(file, "%lf", &numbers[i][k]);
klappt jetzt das Einlesen.
Damit die Ausgabe genauso aussieht wie die Zahlen in dem Txt-File, hab ich jetztprintf("%.7e\n", numbers[i][k]);
geschrieben.
Vielen Dank nochmal