Frage zu cin, cout, getch() - Buffer?



  • /*************************************************************************

    Frage zu unten aufgeführtem Programm:
    -------------------------------------

    Wenn die Target-Plattform DOS-Executable ist, dann arbeitet das
    Programm richtig. Nach Eingabe einer beliebigen Zahl wird auf ein
    Tastendruck gewartet der durch die while-Bedingung abgefragt wird.
    Nur wenn j betätigt wird findet eine Wiederholung der Eingabe statt.

    Dies funktioniert auch wenn die Plattform WIN-Character-Executable
    ist. Allerdings wird dann nach dem Tastendruck j, der Buchstabe j
    auch bei der dann zu erwartenden neuen Eingabe von Zahl angezeigt.
    Das ist nicht gewünscht.

    ? Wie kann ich das verhindern?
    ? Welche Möglichkeiten habe ich mit CIN oder COUT?
    Mit flush u. ä. habe ich schon alles versucht.

    ? Kann mir jemand Antwort geben?

    *************************************************************************/
    #include <iostream>
    #include <conio.h>

    int main(void)
    {
    double zahl;
    char taste;

    do
    {
    cout << endl << endl << " --- Eingabe Zahl: "; cin >> zahl;
    cout << endl << endl;

    cout << "Weiter j/n? ";
    taste = getch();

    } while (taste == 'j');

    return 0;
    }



  • Der C++ Standard hält sich aus so was raus, für ihn kann man nur was in den stream stecken und das wars
    alles was drüber hinausgeht wird in unsen Konsolen Forum besprochen,
    FAQ - DOS und Win32-Konsole

    ahja ich verschiebe den thread mal ins konsolen Forum.

    [ Dieser Beitrag wurde am 01.01.2003 um 21:31 Uhr von Dimah editiert. ]


Anmelden zum Antworten