K
scanf ist immer so ein unsicherer Geselle mit ganz eigenen Regeln. Du darfst
beispielsweise keine Leerzeichen im String haben. "Martin Josef" werden als
zwei Strings angesehen.
Bei mir hat Schreiben so funktioniert:
for (i = 0; i < anz; i++)
{ fprintf(dat, "%d\n", s[i].KNr);
fprintf(dat, "%s\n", s[i].vorname);
fprintf(dat, "%s\n", s[i].nachname);
Und Lesen:
for (i = 0; i < *anz; i++)
{ fscanf(dat, "%d", &s[i].KNr);
fscanf(dat, " %s", s[i].vorname);
fscanf(dat, " %s", s[i].nachname);
Du könntest aber auch eine ganz Zeile mit fgets einlesen und mit Dich mit
strtok durcharbeiten.