string mit double ausrechnen
-
Hi,
Ich habe mir gestern ein Buch über C++ geholt und heute mal versucht ein eigenen Taschenrechner in C++ zu schreiben. Ich hab auch schon ein wenig Erfahrung mit Java, doch irgendwie komm ich jetzt nicht weiter.

// Taschenrechner #include <iostream> #include <string> using namespace std; int main() { string ergebnis; cout << "Bitte tippen Sie ihre Funktion ein:" << endl; cin >> ergebnis; double ergebnis2 = atof(ergebnis.data()); cout << ergebnis2 << endl; return 0; }Bei "ergebnis" soll man sowas wie 5+5*5 eingeben können und das rechnet er dann aus. Ich dachte mir, wenn man
double x = 5+5*5;schreiben kann auch
string x = "5+5*5"; double y = atof(x.data());machen kann.das atof(x.data()) habe ich bei google gefunden.
Doch leider gibt er mir nur das aus:Bitte tippen Sie ihre Funktion ein: 5+5*5 5Für euch dürfte das doch sicher kein Problem sein

mfg
betarosps: Das ist mein erster Post

-
betaros schrieb:
Für euch dürfte das doch sicher kein Problem sein

Hallo betaros,
das ist schwieriger als Du vielleicht denkst. Leichter ist es einen Taschenrechner zu schreiben, der mit der polnischen Notation arbeitet. Schau Dir dazu mal diesen Thread an.
Hier ist ein Artikel über die Auswertung mathematischer Terme; vielleicht ist der hilfreich.Gruß
Werner
-
atof macht nichts anderes, als aus einem String einen Double zu machen. Wie bei Java
Double.valueOf(..).
Was du willst ist ein Parser mit Interpreter, das musst du dir schon selber basteln oder nach einer entsprechenden Bibliothek suchen.Zudem würde ich nicht
std::string.data()sondernstd::string.c_str()für sowas verwenden.
C und C++ Referenz (zumindest teilweise) findest du hier:
www.cplusplus.com/reference/Grüssli
-
Moin,
Danke für die schnelle Hilfe.
Dann brauch ich wohl ein Parser mit Interpreter. Also ich hab jetzt das inet durchgegoogelt und muss sagen, dass ich genauso schlau bin wie vorher

Ich weiß da leider gar nicht mehr weiter. Nach Bibliotheken hab ich auch gesucht...erfolglos

Wie würdet ihr den denn coden???
mfg
betaros
-
Gib mal in der Forums-Suche den Begriff "Taschenrechner" ein. Trefferwahrscheinlichkeit ist mindestens 100%.
