Tastendruck erkennen



  • So hab ich das Problem mal gelöst:

    unsigned char taste;
    if(kbhit())
    {
    	taste=_getch();
    	if(taste == 224)
    	{
    	        taste=_getch();
    		if(taste== 80)
    		{
                        //runter
    		}
    		else if(taste==72)
    		{
    		    //hoch
    		}
    }
    


  • hm..bei mir funzt das i-wie nicht 😞
    hier der code:

    #include <iostream.h>
    #include <stdio.h>
    #include <conio.h>
    
    void main()
    {
            unsigned taste;
    
            if(kbhit())
            {
                taste=_getch();
                if(taste == 224)
                {
                        taste=_getch();
                    if(taste== 80)
                    {
                                cout <<"Runter" << endl;
                    }
                    else if(taste==72)
                    {
                        //hoch
                    }
                }
            }
            getchar();
    }
    

    Was kann ich denn noch falsch machen?

    the-coder



  • Die richtige Headerdatei einbinden.welche es bei kbhit() ist weiss ich immo leider nicht aus dem stegreif, schau halt mal in der msdn nach.

    Edit:
    Achja du solltest noch ne Endlosschleife herum machen

    while(1)
    {}

    Sonst kanns ja nich gehen 😉



  • hm...ist die headerdatei nicht conio.h?
    Ich jetzt mal ne Endlosschleiße drum gemacht aber trotzdem funzts net..

    #include <iostream.h>
    #include <stdio.h>
    #include <conio.h>
    
    void main()
    {
            unsigned taste;
    
            while(1)
            {
                    if(kbhit())
                    {
                    taste=_getch();
                    if(taste == 224)
                    {
                            taste=_getch();
                            if(taste== 80)
                            {
                                    cout <<"Runter" << endl;
                            }
                            else if(taste==72)
                            {
                            //hoch
                            }
                    }
                }
            }
    }
    

    Ich hätt net gedacht dass das so schwer ist 😮

    Es ligt auf jeden fall daran das die zweite if abfrage immer ein false zurückgibt. Wenn ich nämlich anstatt die 224 die 27 für ESC einsetzte funzts.



  • Sag mal deine Fehlermeldung



  • Er gibt keine Fehlermeldung. Ich hab den obrigen beitrag editiert.
    edit:
    Ok es hat soweit geklappt...meine tastaturtabelle war falsch, bzw hatte mcih was verguggt
    the-coder



  • Ne hab nen Tippfehler gehabt, muss natürlich

    unsigned char taste;
    

    lauten 😉



  • nee klappt auch ohne...
    aber ich werds ma davorschreiben:)
    tschuldigung die frage aber was hat es mit unsigned auf sich?
    hatte damit noch nie zu tun und habs noch nirgendwo gesehen 🙄



  • the-coder schrieb:

    Er gibt keine Fehlermeldung. Ich hab den obrigen beitrag editiert.
    edit:
    Ok es hat soweit geklappt...meine tastaturtabelle war falsch, bzw hatte mcih was verguggt
    the-coder

    Ein kleines Programmchen, mit dem du den Code bekommen kannst.

    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <process.h>
    #include <time.h>
    #include <conio.h>
    
    void main()
    {
    	while(1)
    	{
    	int temp;
    	temp=getch();
    	printf("%d\n",temp);
    	}
    }
    


  • the-coder schrieb:

    nee klappt auch ohne...
    aber ich werds ma davorschreiben:)
    tschuldigung die frage aber was hat es mit unsigned auf sich?
    hatte damit noch nie zu tun und habs noch nirgendwo gesehen 🙄

    unsigned ist "vorzeichenlos".



  • OK gut num habe ich alles was ich brauch riesengroßes thx an dich 🙂



  • the-coder schrieb:

    OK gut num habe ich alles was ich brauch riesengroßes thx an dich 🙂

    Kein Problem 🙂


Anmelden zum Antworten