In C eine Zahl als Variable eingeben OHNE Enter (Bestätigung)?
Ich möchte in C eine Zahl einlesen sagen wir mal:
int eingabe;
eingabe = getch();
if(eingabe == 5) printf("SUPI");
Nun ist das aber so dass wenn ich auf der Tastatur eine "5" drücke es nicht geht weil der dass dann als 53 oder so nimmt. Das ist echt doof weil ich eigentlich noch:
test[eingabe]= 123;
machen möchte und Strings kann man dort nicht einfügen! Also ich will einfach nur eine Möglichkeit wenn ich 5 auf der Tastatur drücke in dem Int auch eine 5 ist (ohne Bestätigung)
2 Antworten
Das kommt daher, dass dir das ganze als ASCII-Code interpretiert wird, wenn du es in einem INT speicherst:
Dezimal 53 = "5" als Zeichen
Speichere es in einem char und vergleiche es mit dem character-Zeichen '5', nicht mit der Integer-Zahl 5.
https://www.geeksforgeeks.org/getch-function-in-c-with-examples/
Oder du änderst deine Abfrage zu eingabe == 53.
nein, ist aber auch nicht nötig. Das Zeichen '5' hat die ASCII Darstellung 53. Statt (eingabe == 5) zu machen, kannst du also (eingabe == 53) nehmen. Aber selbst das ist nicht nötig, da du auch direkt das Zeichen '5' verwenden kannst: (eingabe == '5'). Siehst du diese ' ? Das kannst du für character (zeichen) verwenden. Also alles wofür du das Zeichen meinst (also die Symbole 0-9, a-z, A-Z,!.:-_ und vieles mehr) kannst du mit ' im Code angeben und C weiß dann was du meinst und du musst nicht ASCII auswendig können.
weitere Beispiele:
(eingabe == '1') für das Symbol 1
(eingabe == 'a') für das Symbol a
usw.
na du wandelst die 53 wieder in das im was es ist. ASCII Funktion
Kann man dass umgehen?