Problem mit gets() / fgets()

BOND_WR

Mitglied
Hallo,

irgendwie habe ich kleines Problem mit meinem fgets(), sobald ich dies aufrufe:

Code:
int main()
{
.
.
eingabeSchueler(klasse);
.
.
}


void eingabeSchueler(struct schueler schuel[])
{
	printf("Vorname ist:"); fgets(schuel[0].vorname, NMAX, stdin);
	printf("Nachname ist: "); fgets(schuel[0].nachname, NMAX, stdin);
}

läuft er über die Eingabe von "Vorname" hinweg und geht sofort zur Eingabe von "Nachname". Mit gets() habe ich den gleichen Effekt.

Es wird sicherlich kein großer Fehler sein aber ich komm nicht drauf.
Danke im voraus.
 
Hi.

Vermutlich steht noch etwas im Eingabepuffer.

Das hängt davon ab, was du vor dem Aufruf von eingabeSchueler gemacht hast. Evlt. hast du vorher eine Zahl eingelesen. Dabei verbleibt dann das Eingabezeichen im Eingabepuffer und wenn du dann mit fgets/gets auf diesen zugreifst wird natürlich bis zum ersten Eingabezeichen gelesen - auch wenn dort gar keine Zeichen stehen.

Gruß
 
Hi und danke für die Antwort.

Sowas in der Art hab ich auch schon vermutet da ich auch schon alles rausgeschmissen habe und dann hat fgets() funktioniert.

Gibt es eine Möglichkeit den Eingabepuffer zwischendurch zu leeren?
 
Zurück