Win95 und getch()



  • Hallo,

    bin schon am verzweifeln. Ich hab ein Programm C++ Programm auf nem Win95-Rechner laufen. Am Ende wird der Benutzereingabe gefordert die mit j/n zu beantworten ist. Soweit klappt alles, aber im nächsten Schleifen-Durchlauf des Programms "rutscht" mir der oben eingegebene Buchstabe in die nächste cin-Eingabe am anfang des Programms!?!
    Hat irgendjemand ne Idee woran das liegen kann? An nem Win98 ... Win XP Rechner funktioniert übrigens alles.

    do{
    ...
    if(kbhit())
    {
    cAntwort = getch();

    }
    ...
    while(...)

    mfg Alex



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ist dir die Kompatiblität zu Win95 so wichtig?

    Schonmal mit gotoxy (bei win glaub ich in conio.h) probiert, den cursor zu ändern?



  • leermal den buffer

    while(getchar()!='\n')
    


  • Hallo,

    das leeren des Puffers hab ich schon probiert:

    fflush(stdin)
    cin.ignore(cin.rdbuf()->inavail())
    cin.getline
    ...

    alles ohne Erfolg. Das seltsame ist, dass meine Cursorposition immer auf 0 steht, bzw. cin.tellg() -1 liefert.



  • und was sagt der debugger ?



  • Du leerst den falschen Puffer. getch() verwendet alles nur sicher nicht den Puffer der Standardlibrary.

    #include <conio.h>
    #include <windows.h>
    
    ...
    
    FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
    getch();
    

    Kann man nur hoffen, dass das alles schon unter Win95 funktioniert.

    MfG SideWinder



  • Stelfer schrieb:

    leermal den buffer

    while(getchar()!='\n')
    

    macht es nicht ?



  • Stelfer schrieb:

    Stelfer schrieb:

    leermal den buffer

    while(getchar()!='\n')
    

    macht es nicht ?

    Hallo,

    funktionieren tut es nicht, kann es ja auch nicht, deshalb nehm ich ja getch, weil ich da kein '\n' brauche. Also hab ich ne ENDLOSSCHLEIFE bis jemand '\n' eingibt.



  • Hey, danke "SideWinder".

    Habs gerade auf dem Problemrechner probiert!!! Fehler beseitigt - hoff ich!

    mfg Alex


Log in to reply