getch() will nicht so wie ich will...
-
Ich möchte ja nicht nerven, aber...
Ich bin wirklich zu dumm dafür
Es wäre sehr sehr nett, wenn du mir ein Beispiel schreiben könntest dass so ungefähr das ausführt wie in der Auflistung im ersten Thread beschrieben. (Also zumindest den ersten u. Zweiten Punkt der Liste mit dem einlesen , den Rest schaff ich glaube ich alleine).
-
Ich bin müde.
void tast(void) { int chr; fflush(stdin); do{ chr = kbhit(); }while(chr==0); //auf Tastendruck warten printf("Es wurde der Buchstabe %c eingegeben", getch()); //dann ausgeben }
Kein Anspruch auf Richtigkeit. Gute Nacht. In 5 min bin ich weg, wenn du noch ne Frage hast, beeil dich.
-
Man muss immernoch mit Enter bestätigen ? Ich kapier es langsam selber nicht mehr. Ich verwende Dev-C++ als Software ? Ist die irgendwie Falsch ?
-
... }while(chr==0); //auf Tastendruck warten printf("Es wurde der Buchstabe %c eingegeben", chr); }
Probiers. Aber die Wahrscheinlichkeit, dass es geht, ist minnimal. Bitte lies dir den Link oben durch.
-
Naja ich werds noch weiter Probieren. Dir wünsche ich eine Gute Nacht
und Danke für deine Hilfe.
-
Warum hilft dem armen Mann denn niemand?
fflush(stdin) ist Mist, weil undefiniert. Siehe hier
Dass Du zuerst mit Enter bestätigen musst, bevor das Programm anfängt, die Eingabe zu verarbeiten, liegt an der Eingabepufferung, an der Du auch mit Standardmitteln nichts ändern kannst. Ich schätze, die Improved Console kann das für Dich leisten.
kbhit ist Bestandteil von Borland C (imho), nicht jedoch von Visual C++ oder MinGW. Sie gehört keinesfalls zum Standard, ist aber auch durch die Improved Console abgedeckt.
EDIT:
Der alte Beitrag von SideWinder ist von 2002, das gilt heute nur noch begrenzt, da die conio.h sogut wie nirgendwo mehr beiliegt. Siehe Improved ConsoleEDIT2:
Hab jetzt erst mitbekommen, dass die IC eine C++ Bibliothek ist (bzw. das Forum, in dem ich bin verschwitzt :D), das könnte jetzt natürlich problematisch werden
-
Hmm ich hab mir dennoch den alten Beitrag mal richtig durchgelesen und die anderen Befehle probiert. Und es funktioniert ! Benutze ich getche() statt getch() , dann muss ich nicht mit der Enter Taste bestätigen.
void tast(void) { int chr; fflush(stdin); do{ chr = kbhit(); }while(chr==0); chr = getche(); printf("Es wurde der Buchstabe %c ( %i ) gedrückt",chr,chr); }
^ Das Funktioniert. Und das ist guuut
Ich denke vorerst ist mein Problem geklärt
Danke an den Gärtner und an dich, LordJaxom (auch wenn dein Beitrag sich eher an C++ richtet
) - Problem gelöst.
-
Okay, versuche wenigstens nochmal, ob es auch ohne fflush(stdin) funktioniert, denn wenn nicht, könnte es sein dass das Ganze mit dem nächsten Compiler nicht mehr funktioniert.
(Sofern der noch getche an Bord hat ;))
-
Es funktioniert Teilweise
Also man muss zwei Tasten drücken, nur die Zweite wird dann in die Variable gespeichert (gleicher Quellcode wie oben nur ohne fflush).
-
Gast_Kaktus621 schrieb:
Es funktioniert Teilweise
Also man muss zwei Tasten drücken, nur die Zweite wird dann in die Variable gespeichert (gleicher Quellcode wie oben nur ohne fflush).
Ne vertan, entschuldigung
Es funktioniert normal, hab mich nur vertan...