000
28.05.2009, 10:47 Uhr
~berni
Gast
|
Hallo,
habe ein merkwürdiges Problem:
Bei einem kleinen Übungsprogramm zum Datei-Einlesen verschwindet irgendie der Wert für den Index i. in der inneren Schleife soll der Index von 0 auf 4 hochgezählt werden. Ich lasse ihn zur Kontrolle vor und nach dem Befehl
Code: |
ret = fscanf(pfile, "%d", &buf);
|
(Zeile 21) ausgeben. Vor dem Befehl wird er schön auf 1 hochgezählt, nach dem Befehl ist i plötzlich wieder 0!!! wie kann das passieren? mein compiler ist mingw.
grüße bernhard
Code: |
#include <stdio.h>
main() { FILE *pfile; short sum, i, buf, ret; /* zahlen.dat ist eine Datei mit je 4 short-Zahlen je Zeile */ pfile = fopen("zahlen.dat", "r"); if (!pfile) { printf("Fehler beim Lesen der Datei!"); return; } for(;;) { sum = 0; for(i = 0; i < 4; i++) { printf("i1: %d\n", i); ret = fscanf(pfile, "%d", &buf); printf("i2: %d\n", i); if (ret == EOF) break; printf("Zahl: %d%\n", buf); sum = sum + buf; } printf("Summe: %d%\n", sum); if (ret == EOF) break; //printf("\n"); } fclose(pfile); }
|
|