C++ Eingabe ohne Enter und schließliche Abfrage über if
-
#include <iostream> using namespace std; int main(void) { int Zahl; cout << "Bitte geben sie 1 oder 2 ein:"; cin >> Zahl; if ( Zahl == 1) { cout << "Die Zahl war 1"; } else if ( Zahl == 2) { cout << "Die Zahl war 2"; } else { cout << "Sie haben keine 1 oder 2 eingegeben"; } }
Hey ich möchte mit diesem Code eine zahl einlesen lassen,welche aber statt mit Enter sofort eingelesen wird? Ist das möglich und wenn ja wie?
-
Dazu musst du Kontrolle über die Tastatur haben. Wie das geht, hängt vom System ab.
-
okay, ich benutze Windows. Wie mache ich das dann?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) 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.
-
Wenn es eine Windows Konsolen Applikation sein soll:
int ch = _getch();
-
Das klappt dann aber nicht mit if... Hast du da eine Lösung?
-
DarkLord44 schrieb:
Das klappt dann aber nicht mit if... Hast du da eine Lösung?
Zu welchem Problem? Musst du halt genauer beschreiben.
-
ich kann die zahl nicht mit if abfragen wenn ich sie mit _getch() eingelesen habe
-
DarkLord44 schrieb:
ich kann die zahl nicht mit if abfragen wenn ich sie mit _getch() eingelesen habe
Und warum nicht?
-
kp
#include <iostream> #include <conio.h> using namespace std; int main(void) { int Zahl; cout << "Bitte geben sie 1 oder 2 ein:"; Zahl = _getch(); cout << "\n"; if ( Zahl == 1) { cout << "Die Zahl war 1"; } else if ( Zahl == 2) { cout << "Die Zahl war 2"; } else { cout << "Sie haben keine 1 oder 2 eingegeben"; } }
Habe dies hier gemacht und komme aber immer zu else wenn ich 1 oder 2 eingebe oder was auch immer
-
Bei MSDN findest du ein Bsp. Merano hat den Link bereits gepostet.
-
_getch() liefert ein Zeichen und keine Zahl, d.h. als Vergleich müsstest du sowas hier nehmen:
zahl == '1'
-
@_DarkLord44_
_getch() gibt dir genau ein Zeichen.
Wenn deine Zahl in Wirklichkeit eine Ziffer ist, und es dir reicht dass es nur mit 95% alle verfügbaren Encodings funktioniert, und nur mit "unseren" normalen Ziffern 0-9, dann kannst du einfach prüfen ob diese Ziffer im Bereich >= '0' und <= '9' liegt (inklusive der ''!).
Und dann '0' abziehen um den Wert der eingegebenen Ziffer als Integer zu bekommen.
-
#include <iostream> #include <conio.h> using namespace std; int main(void) { int Zahl; cout << "Bitte geben sie 1 oder 2 ein:"; Zahl = _getch(); cout << "\n"; if ( Zahl == '1') { cout << "Die Zahl war 1"; } else if ( Zahl == '2') { cout << "Die Zahl war 2"; } else { cout << "Sie haben keine 1 oder 2 eingegeben"; } }
Cool geht,oben nochmal der fertige Code
-