[C++] Abgefangene Tastatureingaben von int in char umwandeln

Jellysheep

Erfahrenes Mitglied
Hi!
Ich wollte grade ein Programm schreiben, dass Tastatureingaben abfängt und den ASCII-Wert und das entsprechende Zeichen ausgibt.
Ich hab das mit
Code:
printf("%d: %c\n", i, (char)i);
versucht, aber das gibt manchmal nicht gewünschte Zeichen aus, z.B. A anstatt a, ì statt ä und | statt `.
Gibt es eine Funktion, die den gerade gedrückten Buchstaben inkl. Shift ect. zurückgibt?
 
Ich wollte grade ein Programm schreiben, dass Tastatureingaben abfängt und den ASCII-Wert und das entsprechende Zeichen ausgibt.
Wie fängst du die Tastatureingabe ab? Welches Betriebssystem, welches API? Abgesehen davon solltest du bedenken, dass nicht jeder Taste sinnvoll ein ASCII-Zeichen zugeordnet werden kann (wie beispielsweise den Pfeiltasten).

Grüße, Matthias
 
du liest ja überhaupt keine Tastatureingaben ein, ersteinmal mit scanf einlesen und dann mit printf ausgeben
Code:
char i;
scanf("%d", i);
printf("%c", i);
 
Ich lese schon etwas ein , habs aber nicht gepostet gehabt... deine Variante funktioniert übrigens nur, wenn das Fenster den Fokus hat.
Mein bisheriger Code:
Code:
while(true){
	Sleep(100);
	for(int i = 0; i<256; i++){
		if(GetAsyncKeyState(i)!=0){
			printf("%c", i);
		}
	}
}
 
Hallo,

GetAsyncKeyState ist anders zu verwendet!
1. Muss der Parameter ein Virtual-Key Code sein
2. kann auch etwas anderes als ein Tastendruck einen Wert ungleich 0 zurück geben.

Code:
if(GetAsyncKeyState(VK_LBUTTON)&0x80)
printf("Linke Maustaste gedrückt!\n"

Die Virtual-Key Codes können durch MapVirtualKey(...) in ascii zeichen umgewandelt werden, wenn sie darstellbare zeichen sind.

Ich hoffe ich konnte helfen.

Gruß Anfänger.
 
Zurück