Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Eingabe mit cin <<

  1. #1
    Registrierter Benutzer
    Registriert seit
    17.04.2002
    Beiträge
    185

    Question Eingabe mit cin >>

    Hallo,
    ich hab ein kleines Programm geschrieben bei dem erst ein Auswahl menü kommt, wo man dann die Menüpunkte 1, 2 und 3 auswählen kann. Die Auswahl lese ich mit cin >> auswahl ein und entscheide dann in einer switch Anweisung was passieren soll.
    Beim Menüpunkt 1 soll eine Eingabemaske für verschiedene Daten kommen, was auch funktioniert. Nur die erste Eingabe wird immer übersprungen. Ich habe herausgefunden das an dieser Stelle noch die "return-taste" von der Menüauswahl wirkt.
    Wenn ich vorher getchar() aufrufe, wird das return Signal dort "verbraucht" und ich kann alle Werte eingeben.
    Weiß jemand woran das liegt und wie man das umgehen kann? Denn so ein getchar() ist ja nicht gerade die schönste Lösung und dazu auch noch C.

    Ich hoffe das war einigermassen verständlich erklärt...

    Danke!
    BeS

    PS: Gibt es unter C++ eine alternative zu getchar()?
    Geändert von BeS (01-03-2003 um 18:09 Uhr)

    For a world where freedom and knowledge survives the compiler! (https://www.fsfe.org)

    If art interprets our dreams, the computer executes them in the guise of programs!

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Du könntest die Eingabe mit getline lesen. Da wird das Newline automatisch "verbraucht"

    Code:
    string eingabe;
    getline(cin, eingabe);
    if (eingabe == "1")
    {
    }
    Oder du kosumierst das Newline mit
    Code:
    cin.get();
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    10.03.2001
    Ort
    Aalen, BW
    Beiträge
    28
    oder du verwendest
    cin.clear();

    Gruß
    mcg.linux
    Linux! sonst nichts..

    ICQ 38872921

Lesezeichen

Berechtigungen

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