Tastaturabfrage



  • Ich brauche Hilfe bei folgendem Programm:

    #include <stdio.h>
    #include <conio.h>
    
    int main(void)
    { char i;
    
      while(1){
        printf("Test\n");
        if(getch()=='e') break; //hier stoppt die Schleife natürlich
      }
    
       return 0;
    }
    

    Läuft soweit ganz gut! 😉
    Das Problem ist: Das Programm soll auch weiterlaufen, wenn man nichts eingibt.
    Also die while schleife soll solange laufen bis irgendwer hergeht und die Taste e drückt!

    Ist das irgendwie zu lösen?



  • Die Antwort ist OS und Compiler abhängig und sie ist nicht im Standard enthalten

    Die meisten Windows/DOS Compiler bieten im Rahmen ihrer Erweiterungen eine Funktionen wie kbhit() an

    MS$ Visual C 6.0
    Checks the console for keyboard input.
    int _kbhit( void );

    Return Value
    _kbhit returns a nonzero value if a key has been pressed. Otherwise, it returns 0.

    Remarks
    The _kbhit function checks the console for a recent keystroke. If the function returns a nonzero value, a keystroke is waiting in the buffer. The program can then call _getch or _getche to get the keystroke.

    char c; 
    while (true) 
    { 
        if (0==kbhit()); 
         {
          c = getch (); 
           printd("Taste: %c gedrückt",c) ; 
         }
       else
        { 
        // beliebige ander Aktionen
    }
    


  • WOW! Danke!

    Das hilft mir wirklich sehr weiter!!!

    (Gut das es kbhit auch bei Borland gibt 😃 )

    P.S: Klasse Forum!


Anmelden zum Antworten