Noobie Frage Tastatureingabe Erzwingen
-
Hallo erstmal an alle !!!
Erstmal will ich nur sagen das ich ein absoluter Noob in sachen C++ bin aber ich bin dabei das zu ändern.Ich wollte mal fragen wie ich es erreichen kann das ich bestimmte zeichen bei der Tastatureingabe erzwingen kann, also es geht um folgendes ich habe eine eingabe wenn ich z.B den Buchstaben 's' eingebe dann startet er zum beispiel die funktion start(). Nun ist ja das Problem das wenn der nutzer z.b 'b' eingibt das da nixs aufgerufen wird ich habe mir da erst mal mit einer do-while anweisung geholfen der halt überprüft ob das zeichen ein 's' ist und wenn nicht sagt er das und erwartet einen neue eingabe. Aber es gibt doch sicherlich eine Möglichkeit das er nur das Zeichen 's' akzeptiert also gebe ich 's' in die Tastatur ein gebt er das auch auf den Bildschirm aus gebe ich aber z.B 'b' ein macht er gar nixs also zeigt das zeichen net an quasi als wenns das zeichen net gibt. Könnt ihr mir da eventuell weiterhelfen???
Mfg Fox
-
Eine Möglichkeit in C:
#include <conio.h> // wegen getch() und getche() #include <stdio.h> // wegen printf(...) int main() { char zeichen; for(int i=0;;i++) { zeichen = getch(); // ohne Echo if(zeichen=='s') break; } printf("s wurde gedrueckt.\n"); return 0; }
[ Dieser Beitrag wurde am 03.07.2003 um 19:58 Uhr von Erhard Henkes editiert. ]
-
Versuch doch mal, das nach C++ zu transferieren.
-
Jo cool ich danke dir!!!!!!!!!!
-
Du meinst es an C++ anzupassen?? Da brauchte ich nicht das geht auch so. Ich habe halt nur das "printf" durch "cout" ersetzt. Muss mann ja eigentlich auch nicht machen aber ich habe es so gelernt!!
Mfg Fox
-
Original erstellt von Erhard Henkes:
**Eine Möglichkeit in C:#include <conio.h> // wegen getch() und getche() #include <stdio.h> // wegen printf(...) int main() { char zeichen; for(int i=0;;i++) { zeichen = getch(); // ohne Echo if(zeichen=='s') break; } printf("s wurde gedrueckt.\n"); return 0; }
[ Dieser Beitrag wurde am 03.07.2003 um 19:58 Uhr von [qb]Erhard Henkes** editiert. ][/QB]
Wozu bitte eine for-Schleife? Ein einfaches while(1) { ... } tuts doch auch!
-
Erstens wollte ich ihm etwas zum Nachdenken geben. Zweitens wird man sicher nicht in alle Ewigkeiten Zeicheneingaben abfragen wollen, dann kann man auf i abfragen und >1000 o.ä. abbrechen.
-
Hallo,
wobei weder C noch C++ <conio.h> oder getch() kennen. Insofern bist du im Konsolenforum besser aufgehoben.
-
Hallo,
wobei weder C noch C++ <conio.h> oder getch() kennen. Insofern bist du im Konsolenforum besser aufgehobenDas verstehe ich nicht!! Wieso kennen die das net es steht doch in jedem C++ Buch drinnen und was sie bewirken auch
-
Schaut mal in der Konsolen-FAQ nach - da steht sowas.
MfG SideWinder
-
Gibt es hier eine analoge Funktion in C++, die das Echo unterdrückt? cin.get(...) ist hier nicht ausreichend.
-
Ja, getch()... lesen wäre ein Vorteil
-
Ich kann lesen, ist schon gut.
Manche sind der Meinung, getch() ist weder C noch C++ (z.B. HumeSikkins, siehe oben!). Daher ist der Thread ja hier gelandet in dieser düsteren Ecke. Also nochmal: gibt es eine C++-Anwesiung, die das kann, oder braucht man conio.h mit getch() dafür?
-
Nein - wie auch? C/C++ interessiert sich ja nichtmal für die Ausgabe! Die schreibt halt auf nen zufälligen Stream von dem auch die Konsole liest ;).
Ja du kannst due <conio.h> umgehen -> mit der <windows.h> ;).
Wenn du da genauere Infos willst einfach posten
MfG SideWinder
-
Mir liegt sowieso nicht viel an der puristischen Trennung zwischen C, C++, Windows-API, ... . Aber hier hat C++ offensichtlich eine Lücke.
-
Sollte dir aber etwas dran liegen. Wenn du in deiner Sprache eine "echte" Ausgabe definierst die vom System abhängig ist, ist deine Sprache plötzlich von diesem System abhängig.
MfG SideWinder