schleifendurchlauf bis tastendruck



  • hey hab ma ne blöde frage

    ich bekomme über mein com port eine endlose folge von strings welche ich mit ReadFile auslese.
    Ich will eigentlich in der Console nicht mit Strg-C beenden.
    Es soll ,wenn eine bestimmte taste gedrückt wird ,aus der schleife rauskommen.

    Dachte mir zuerst

    do{
    ReadFile....
    printf...
    }while(getchar()!='x');

    Aber so wartet es jedesmal auf ein Tastendruck um weiterzumachen. find ich blöd.
    Also zusammengefasst will ich aus der Schleife wenn 'x' gedrückt wurde.

    Kann mir jemand ne elegantere Lösung anbieten?

    danke!



  • dann must du das glaub ich in der art machen

    if (getchar()=='x')break;



  • nee ich glaub egal wie man getchar verwendet der wartet bei mir immer auf ein return um in der schleife weiterzumachen.

    der soll schon die schleife ununterbrochen durcharbeiten bis ich 'x' drücke.



  • die funktion kbhit() aus conio.h gibt bei tastendruck 1 amstonsten null zurück

    while(!kbhit())
    {
    do_something();
    }
    

    getch() aus conio.h gibt das gedrückte zeichen zurück (ASCII nr)

    also würde ich es so machen:

    while(1)
    {
    if(kbhit())
    {
    if(getch() == x){}//das zeichen wurde gedrückt....
    }
    }
    

    gruss reima



  • wow ich danke dir sehr 😉
    das habe ich gesucht!

    gibt noch soviele funktinen die ich net kenne 😃


Anmelden zum Antworten