[C++]Error Frage

06/16/2013 20:33 'Aleo#1
Ich habe ein kleines Problem und zwar möchte ich einen Taschenrechner in C++ basteln und es kommt abe rimmer ein Fehler wenn ich 1*3 eintippe, bei 1+3 geht alles. Fehler: debug assertion failed vector subscript out of range
Code:
Den Klassennamen Funktionen und die Funktionsnamen auch bitte ignorieren :D war nur ein Versuch für Klassen

Ich habe auch ein anderes Problem undzwar würde ich es auch gerne so machen das wenn man 1 + 2 eingibt die abstände gelöscht werden und erst dann gesplittet wird, jedoch bekomme ich das nicht hin, habe es mit s.erase(boost::remove_if(......)....); versucht es ging aber nicht.

Ich bedanke mich schonmal im Vorraus,
'Aleo
06/16/2013 21:40 Delinquenz#2
Zum einen sollte man std::stoi und nicht atoi benutzen.

Andere Frage: [Only registered and activated users can see links. Click Here To Register...]
07/29/2013 09:37 adolfschaerf#3
Falls es nicht klappen sollte könntest du ja alternativ mit std::cin eben integer, double etc. einlesen und die Rechenoperation gesondert behandeln mit switch-case. Imho kann man die Geschwindigkeit bei solch kleinen Projekten vernachlässigen.
07/29/2013 18:15 Schlüsselbein#4
Lexer und Parser schreiben und tada, damit ganz einfach auch komplexe Strings auswerten.
07/29/2013 20:02 Tasiro#5
Wenn schon Boost verwendet wird, kannst du dir auch gleich einen Parser mit [Only registered and activated users can see links. Click Here To Register...] schreiben. Warum einfach, wenn es auch kompliziert geht?

Davon abgesehen lässt sich ein einfacher Parser auch problemlos selbst erstellen:

Aber wenn dich dieses Thema interessiert, kannst du dir natürlich das Drachenbuch kaufen, wenn du neben einfacher Syntaxanalyse auch den ganzen Rest eines Compilers kennen lernen möchtest. Oder du suchst einfach im Internet danach...