fscanf in while-Schleife
-
Hi,
bin etwas ratols. Folgendes will einfach nicht funktionierenwhile(EOF != fscanf(f,"%c %lf",&p[i].name,&p[i].stimmen)){ printf("%d %c %lf\n",i,p[i].name,p[i].stimmen); p[i].div=p[i].stimmen; i++; }
Die Textdatei:
A 416 B 338 C 246
und die Ausgabe:
0 0.000000 1 A 416.000000 2 0.000000 3 B 338.000000 4 0.000000 5 C 246.000000 6 0.000000
Ich werde einfach nicht schlau daraus!
Wieso durläuft er die Schleife 6x nicht 3x?
Wenn ich nur einen Wert über fscanf einlese funktionierts. Warum?Danke im Voraus
-
Was ist denn f, was ist denn p, was ist denn name, was ist denn stimmen ???
was ist denn i, was ist denn div ???
-
f ist der Dateizeiger FILE *f;
p ist Zeiger auf ein Array einer komplizierteren Struktur, das ist aber für das Problem eigentlich nicht von belang. Der Code stimmt nur durchläuft er die Schleife 3x zu oft!
-
a) In der Datei sind integer - enthalten, keine floats, doubles...
b) Wie bei scanf wird das '\n' am Ende jeder Zeile extra gelesen, deshalb die doppelte Anzahl der erwarteten Ausgaben.
c) :xmas2:
Zeh Mau
-
Dankeschön! Lag an dem \n.
-
Gerne