Schleife soll so lange durchlaufen werden, bis taste gedrückt wird...



  • Hi Leute,
    Was ich will steht ja schon im Titel.. hier mein Programm

    #include <conio.h>
    #include <stdio.h>
    void main(void)
    {
    int log;
    clrscr();
    while(log=13)
    {
    log=kbhit();
    }
    getch();
    }
    

    Warum geht das nicht????
    Ich hatte eine ähnliche Frage schonmal im AnsiC Forum... kann mir wer hier ein Beispiel hinposten?
    David

    PS: 🙂 🙂 🙂 😕 😕 😕 😋 😋



  • #include <conio.h>
    #include <stdio.h>
    
    int main () // Es heißt int main () nicht void main (void)
    {
        int log = 0; // Initialisieren mit 0, kannst du aber ganz weglassen
        clrscr();
    
        while(!kbhit()) // solange keine taste gedrückt wurde
        {
            // mach was
        }
    
        // taste wurde gedrückt
    
        return 0;
    }
    

    MfG SideWinder



  • btw, "while(log=13)..." ist sinnlos - wenn du vergleichen willst, verwende "==". Außerdem liefert kbhit() nicht den ASCII-Code der gedrückten Taste, sondern nur eine true/false Entscheidung, ob eine Taste gedrückt wurde - welche, mußt du anschließend mit getch() herausfinden:

    int log=0;
    while(log!=13)
    {
      ...
      if(kbhit()) log=getch();
    }
    

Anmelden zum Antworten