getch



  • es soll ja sofort erscheinen, ohne das ich ENTER danach (nach der eingabe) drücke.

    _getche() oder _kbhit() ist doch das einzige.

    wie geht das?
    mfg



  • In <conio.h> gibt es auch noch getch().



  • XMaster schrieb:

    In <conio.h> gibt es auch noch getch().

    IS DAS SELBE WIE _GETCH() 🙄

    warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
    1>        c:\program files\microsoft visual studio 8\vc\include\conio.h(145): Siehe Deklaration von 'getch'
    

    Kann mir jemand bitte helfen?

    char c = _getch();
    	if(_kbhit())
    	{
    	switch(c)
    	{
    	case 77:
    		std::cout << "Rechts" << std::endl;
    		break;
    	case 75:
    		std::cout << "Links" << std::endl;
    		break;
    	}
    	}
    

    Das geht nähmlich nicht: Wenn ich Die PFEILTASTEN DRÜCKE passiert nichts im konsolenfenster das heisst es wird nix ausgegeben... 😮

    BITTE HELP 😕 😕 😕 😕 😕 😕 :



  • hast du schonmal in zeile 4 einen breakpoint gesetzt?
    Was für werte hat denn c dort?



  • ztrzrtz schrieb:

    hast du schonmal in zeile 4 einen breakpoint gesetzt?
    Was für werte hat denn c dort?

    char c = _getch();
        if(_kbhit())
        {
        switch(c)
        {
        case 77:
            std::cout << "Rechts" << std::endl;
            break;
        case 75:
            std::cout << "Links" << std::endl;
            break;
        }
        }
    

    is der code.
    wenn ich jetzt pfeiltasten anklicke zbsp. -> dann sollte "Rechts" ausgegeben werden. das gleiche mit Links(<-).

    wie geht das?

    mfg



  • ........



  • Weißt du überhaupt was breakpoints sind?



  • rtretretre schrieb:

    Weißt du überhaupt was breakpoints sind?

    break oder ";", kA habs bestimmt schon mal verwendet, ka aber wie sie ausschauen^^

    kannst du mir nun pls sagen wie der code ausschaut?

    mfg



  • Breakpoints. Leider etwas mager, der Wiki-Artikel, aber sonst gibts auch noch genug im Web 😉

    Zur Sache: Ist das hier nicht Unfug:

    char c = _getch();
    if(_kbhit()) ...
    

    ? Was passiert denn, wenn du nur getch() aufrufst? Wenn dann müsstest du glaubich kbhit() vor getch() aufrufen.



  • if(_kbhit())
    	{
    	char c = _getch();
    
    	switch(c)
    	{
    	case 77:
    		std::cout << "Rechts" << std::endl;
    		break;
    	case 75:
    		std::cout << "Links" << std::endl;
    		break;
    	}
    	}
    

    geht ja irgendwie nicht :S

    Aber

    std::cout << _getch();
    

    geht ja, zbsp ESC is ja 27 und da wird 27 ausgegeben bei ESC drücken.

    char x = _getch();
    	while(_kbhit())
    	{
    		switch(x)
    		{
    		case 27:
    			std::cout << "ESC" << std::endl;
    		default:
    			std::cout << "ERR" << std::endl;
    		}
    	}
    

    geht ja auch nicht 😞

    Folgendes möchte ich haben:
    Wenn der benutzer zbsp. "ESC" drückt, dass da "HALLO" ausgegeben wird.
    also mit net while,damit ich es unendlich mal machen kann^^
    if wird sofort ausgehen nach dem ersten versuch 😃



  • Hab nicht ganz verstanden, was du da geschrieben hast, aber das geht bei mir:

    char c = _getch();
    switch(c)
    {
    	case 'a':
    		std::cout << "AAAAAAAAA" << std::endl;
    		break;
    	case 'b':
    		std::cout << "BBBBBBBBB" << std::endl;
    		break;
    }
    

    Ich glaub das mit den Pfeiltasten und Escape wird schwerer, weil das "Extra-Tasten" sind 😕



  • Badestrand schrieb:

    Hab nicht ganz verstanden, was du da geschrieben hast, aber das geht bei mir:

    char c = _getch();
    switch(c)
    {
    	case 'a':
    		std::cout << "AAAAAAAAA" << std::endl;
    		break;
    	case 'b':
    		std::cout << "BBBBBBBBB" << std::endl;
    		break;
    }
    

    Ich glaub das mit den Pfeiltasten und Escape wird schwerer, weil das "Extra-Tasten" sind 😕

    ja, hab ne bessere methode gefunden: kbhit und getch vertragen sich net ...
    danke trodzdem ;=)




Anmelden zum Antworten