Schleife mit ENTER beenden



  • So ich bedanke mich erstmal an alle die mir bei meiner letzten frage geholfen
    haben sie haben mir zwar keine konkreten antworten gegeben dafür sehr gute links und hinweise!!!

    So jetzt habe ich aber noch ne Frage: ,,Wie ich eine Schleife, am besten eine
    for-schleife Vorzeitig abbrechen kann. Also nicht erst die abfrage ob ein Wert
    noch stimmt oder eine Wert Richtig oder Falsch ist sondern während die
    Schleife lauft, durch eine von mir vorher bestimmten Taste beendet wird, wobei
    wenn mir jemand dann noch sagt wie das mit der Entertaste geht dem würde ich
    fast die Füße küssen!!!

    Also soll dann zum Beispiel bei einer Entlosschleife dazu führen das sie doch
    ein Ende hat aber bis dahin nicht immer auf eine Eingabe wartet sondern lauft
    und lauft bis ich Enter drücke oder sonst irgeneine Taste!!!



  • Hm, wenn du keine Eingabe willst, dann geht das so ohne weiteres nicht. 🙄
    Evtl. schaust du dir mal Threads an, da könntest du was finden.



  • Für sowas nimmt man nicht-blockierende Tastenfunktionen. Ob MFC sowas bereitstellt kann ich dir nicht sagen. Aber WinAPI bietet zB GetAsyncKeyState an. Dies müsstest du entsprechend in die Schleife einbauen und mit break dann rausspringen. Alternativ kannst du den GetAsyncKeyState Aufruf aber auch gleich in die Abbruchbedingung der Schleife einbauen.



  • Vielleicht meint er auch eine Konsolenanwendung? 🙄



  • Ja als erstes meint er eine Konsolenanwendung!!!
    Aber auch eine Windowsanwendung also in fenstern!!!

    ich bin noch am üben und würde deswegen gerne erstmal es in einer
    konsolenanwendung versuchen daher wer mir helfen dem bin ich sehr dankbar!!!



  • dann frag im Konsolenforum.



  • Dieser Thread wurde von Moderator/in estartu_de aus dem Forum MFC (Visual 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.



  • soweit ich es richtig verstanden habe kann man es so machen:

    unsigned char taste;
    
    for(;;)
    {
        if(kbhit())
        { 
            taste=getch();
            if(taste==13) //Enter 
            {
                break;
            }
        }
    }
    


  • Es fehlen noch zwei Klammern hinter kbhit und taste soll ein ganz normaler char sein. Alles weitere in der Konsolen-FAQ.

    MfG SideWinder



  • SideWinder schrieb:

    Es fehlen noch zwei Klammern hinter kbhit und taste soll ein ganz normaler char sein. Alles weitere in der Konsolen-FAQ.

    MfG SideWinder

    Klammern habe ich editiert, habe ich wohl vergessen 🙄.
    Aber wegen unsigned und normal char:
    Also ich habe Microsoft Virsual C++ 6.0 und bei mir gehts nur, wenn es unsigned char ist.


Anmelden zum Antworten