C++ zeichen einlesen ohne enter

5 Antworten

Du kannst

template basicistream<CharType, Traits>& getline( basicistream<CharType, Traits>& Istr, basicstring<CharType, Traits, Allocator>& _Str );

nehmen. Die Funktion steht in . Als _Istr kannst du std::cin nehmen. Die Funktion liest dann eine Zeichenkette von std::cin bis Enter gedrückt wird. Danach kannst Du den in _Str übergebenen std::string parsen, d.h. auswerten. Viel Spaß!

Das ist kompliziert, soweit ich weiß. Habe ich selber schonmal versucht. Du musst die einzelnen Zahlen einlesen (in Integer-Arrays) und von Zeichen unterscheiden, du musst die Zeichen richtig anordnen und viele fehlerhafte Eingaben des Benutzers korrigieren oder eine Meldung rausgeben, dass etwas nicht stimmt. Aber vielleicht gibt es eine Bibliothek dafür, such bei Google mal nach "equation solve library c++" oder ähnliches.

Du kannst das ganze als String einlesen und den dann nach dem Rechenzeichen durchparsen. Danach Trennen und ein Typecast nach Integer zu den Zeichen vor und nach dem Rechenzeichen.

Ich hab jetzt "nur" C und Java-Kenntnisse.. aber in C++ müsste es genauso gehen ;) Kann dir nur mit den genauen Befehlen grad nicht weiterhelfen.


dergutekoenig  20.06.2012, 18:00

Und ein zuverlässiger (!) Parser ist auch keine ganz triviale Aufgabe.

0

Dafür gibt es in der Library "conio.h" den Befehl getch(). Guck dir den mal an.


rj45abqz 
Beitragsersteller
 20.06.2012, 16:36

getch() ließt nur ein zeichen ein

0
tobistenzel  20.06.2012, 20:10
@Ysengrin

Das ist aber nicht wirklich "C++", sondern ein uralter DOS-Header ;) Davon sollte man eher die Finger lassen.

0
rj45abqz 
Beitragsersteller
 21.06.2012, 06:08
@Ysengrin

außerdem kann man mit getch nur chars einlesen und wenn man dan z.b. eine 5 eingibt bekommt man beim weiterrechnen den ascii-wert der zahl

0

Du kannst das schon als kompletten String einlesen (cin kennst du hoffentlich), aber dann hast du ein noch größeres Problem, weil du dann irgendwie den String nachträglich in seine Einzelteile zerlegen musst. Sowas ist grundsätzlich schon nicht einfach, mit den Mitteln der C++-Standardbibliothek erst recht ;)

Mal aus Interesse: wie und warum lernst du C++?


Gianotti  21.06.2012, 08:11

naaaja. so schwer ist das auch nicht. die funktion zieht sich dann halt ein wenig fürs berechnen aber dafür kann sie dann immer benutzt werden egal wie lang die rechnung ist.

0