-
versteckte, gespeicherte Zeichen
hi nochmal.
kann es sein, dass wenn ich einen Integer mit
scanf("%i", &option);
einlese, und dann, bei der Ausführung, den Integer eingebe und mit Return bestätige, dass das Returnzeichen "irgendwo gespeichert wird"? Denn wenn ich das nächste mal einen string einlesen will
fgets(string, 20, stdin) /* nur als beispiel */
wartet das programm nicht, bis ich was eingebe, sondern scheint das Return einzufügen ... ich hab's dann einfach abgefangen:
scanf("%i", &option);
fgets(puffer, 1, stdin); /* das Returnzeichen abfangen */
strcpy(puffer, "")´; /* das Zeichen wieder löschen*/
strings_einlesen();
hab ich das problem richtig erkannt, oder wie seh' ich die sache?
-
du hast das schon recht richtig erkannt. das newline zeichen steht natuerlich noch im eingabe puffer, da wenn du ein scanf("%i", &var) machst ja nur das erste zeichen, das eingegeben in var gespeichert wird. Mehr kann die Variable nicht aufnehemen. Wenn du nun wieder ein Zeichen mit scanf einlesen willst wird natuerlich das noch im eingabepuffer befindliche newline zeichen eingelesen und in var gespeichert. Man sollte zum einlesen einzelner integers aber nicht scanf benutzen sondern getc oder aehnliches
cu spectrum
-
Mit
fflush(stdin);
kannst du den Eingabepuffer löschen.
greets
f0rtex
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen