Sternchen statt Text
-
<zu früh am morgen ...>
[ Dieser Beitrag wurde am 20.02.2003 um 07:23 Uhr von elise editiert. ]
-
Vielen Dank
Jetzt sollte es funktionieren.Schönen Tag noch
-
Ich habe jetzt versucht, das in mein Programm einzubauen,
nur scheitere ich bei folgenden zwei Sachen:
1. Gibt es mir danach glaube den ASCII Code der Zahl und nicht die Zahl selbst aus, und
2. kann ich bis jetzt nur immer nur eine Zahl eingeben/einlesen. Also nicht z.B. 99 sondern nur 9Ich hoffe mir kann jemand weiterhelfen.
Hier mein Beispielsource:
#include <iostream> #include <conio.h> #include <windows.h> using namespace std; int main() { int zahl=0; while (true) { int zahl=getch(); cout << "*"; //cin >> zahl; Sleep(2000); cout << zahl; } }
-
also in eine zahl kan nst du den ascci code per atoi() umwandeln. Um Zahlen wie 99 zu erhalten musst du nur die ganzen eingegebenen chars aneinanderfügen und dann per itoa() umwandeln.
-
Du liest mit getch() nur ein einziges Zeichen ein, du musst alle Zeichen in einem String speichern, den du dann mit den genannten Funktionen in eine Zahl umwandeln kannst.
#include <iostream> #include <string> #include <conio.h> #include <windows.h> using namespace std; int main () { char now ( 0 ); string str; while ( now != 13 ) // 13: Ascii-Code von Return (Enter) { now = getch (); str = str + now; cout << '*'; } sleep ( 1000 ); cout << str; return ( 0 ); }
Ich speichere den Rückgabewert von getch() deshalb nicht gleich im String, damit du vorher noch ein paar Überprüfungen anstellen kannst - zB falls du auch ein Backspace benützen willst - das musst du dir hier selbst basteln. Falls du Hilfe brauchst melde dich einfach nochmals.
MfG SideWinder
-
Sorry !!!
Das ist unter ANSI-C++ nicht möglich und übrigens : In WinXP gibt es nur Punkte
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
Original erstellt von Matthias-Claudio:
**Sorry !!!Das ist unter ANSI-C++ nicht möglich und übrigens : In WinXP gibt es nur Punkte
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!**aber dies ist das konsolenforum ... da ist es egal, ob standard oder nicht
-
Also jetzt funktioniert alles bis auf das kleine Problem, dass ich eigentlich anstatt Buchstaben Zahlen bräuchte:
#include <iostream> #include <string> #include <conio.h> #include <windows.h> using namespace std; int main() { char now(0); string str; while (now!=13) // 13: Ascii-Code von Return (Enter) { now = getch (); str = str + now; cout << '*'; } if(now==22) { cout << "Richtig"; } else cout << "Falsch"; cout << str; Sleep(4000); return(0); }
Wenn ich die Strings weglasse, dann erkennt er die Entertaste nicht mehr, und wenn ich das so lasse, dann kommt gibt er mir ständig 13 aus.
Wird ein Zahlenratespiel für 2 Spieler
-
Das das so wie oben nicht funktionieren kann, ist mir mitlerweile klar, da ich in der if Schleife now und nicht str prüfe, aber str kann ich so wie ich das möchte nicht prüfen - Gibt Fehler.
Die Zahl 22 ist nur ein Beispiel und wird im richtigen Programm dann durch die Eingabe vom Spieler 1 erstetzt.
-
Also die 22 steht dann nicht in now sondern in str. Und zwar als String und nicht als Zahl.
Um eine reine Zahleneingabe zu ermöglichen, und dem User keine Chance zu geben andere druckbare Zeichen einzugeben empfehle ich die Funktion namens ReadDigit aus der FAQ umzubauen.
MfG SideWinder