Anzeige:
Ergebnis 1 bis 3 von 3

Thema: versteckte, gespeicherte Zeichen

  1. #1
    Gast

    Unhappy 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?

  2. #2
    Gast

    Post

    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

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.07.1999
    Ort
    Zürich
    Beiträge
    221

    Post

    Mit
    fflush(stdin);
    kannst du den Eingabepuffer löschen.

    greets
    f0rtex

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •