nicht kündbare while schleife



  • moin!

    Wenn ich e/E eingebe wird die while Schleife nicht beendet 😕

    while(GetAsyncKeyState!=(0x45)) // e/E
    {
      	scanf("%d",&test_array[j]);
            j++;
    }
    

    Habs auch irwie mit Escape und verschachteltem if probiert, geht au nich 😞 :

    while(1)
      {
      	if(GetAsyncKeyState==(0x1B))
        {
        	break;
        }
      	scanf("%d",&test_array[j]);
        j++;
      }
    

    Gruß
    agi 🙂



  • GetAsyncKeyState gibt nur einen bool'schen Wert zurück, keinen Keycode. Der Parameter der Funktion ist ein virtueller Keycode. Es kommt true (also != 0) zurück wenn der Key, der als Parameter angegeben wurde, gedrückt wurde.

    #include <windows.h>
    
    int main(void) {
    	for(;;) {
    		if(GetAsyncKeyState(69)) {      // 69 -> e/E
    			break;
    		}
    	}
    	return 0;
    }
    

    Mfg
    Ravendark



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi, danke schonmal jetzt ist die while bzw. for Schleife kündbar! 😃
    Aber scanf liest irwie das E zeichen mit, wie kann ich das beheben?

    while(1)
        {
            if(GetAsyncKeyState(69))
            {
            	break;
            }
            scanf("%d",&test_array[j]);
            j++;
        }
    

    Gruß
    agi 🙂



  • Guten Tag.
    Das Verhältnis Schleife/Programm ist kein Arbeitsverhältnis und kann daher nicht gekündigt werden, ist also nicht kündbar.
    MFG



  • anwalt arbeitsrecht schrieb:

    Guten Tag.
    Das Verhältnis Schleife/Programm ist kein Arbeitsverhältnis und kann daher nicht gekündigt werden, ist also nicht kündbar.
    MFG

    klaro, war auch ironisch gemeint. 😉

    Gruß
    agi 🙂



  • GetAsyncKeyState gibt nur bool'schen Wert zurück

    Huh?

    SHORT GetAsyncKeyState(int vKey);
    

    Return Value
    If the most significant bit is set, the key is down

    Ich habe sowas noch nie gesehen (wenn GetAsyncKeyState ist keine Klassen Method)

    if(GetAsyncKeyState(69))
    

    Sollte es nicht so sein?

    1. if(GetAsyncKeyState(69) & 0x8000)
    2. if((short)GetAsyncKeyState(69) < 0)
    


  • Stimmt, hätte doch noch mal die Dokumentation nachlesen müssen 🙄

    Na ja, der Pogrammiersprache die ich z.Z. benutze ist eine Abfrage a lá

    if(GetAsyncKeyState(69))
    

    relativ gängig...habe das jetzt mal frei auf C übertragen.


Log in to reply