Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Direkt aus String berechnen???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.12.2004, 16:32 Uhr
~Nitro
Gast


Hallo!

Ich versuchen ein kleines Programm zu schreiben welchen mir einfach nur Integerwerte Addieren oder subtrahieren soll.
Dieses soll allerdings nicht mit Hilfe von If und case Anweisungen geschehen (klassisches Taschenrechner Programm), sonder soll direkt aus einem String erfolgen.
Z.B. ich geben 1+5-2 ein und möchte dann das Ergebnis bekommen.

Ok dieses Programm läuft nicht wegen Ergebnis(int) und Eingabe(char), aber stellt meine Frage gut dar.
Ich möchte den String 1+5-2 mit cin >> Eingabe einlesen.
Dieses dann als Rechnung ins Ergebnis einfügen, so als ob ich direkt im Quellcode (Ergebnis = 1+5-2 eingegeben hätte.
Ist dieses überhaupt möglich?


C++:
#include <string>
#include <iostream>
using namespace std;

int main ()
{
    char Eingabe[80];
    int Ergebnis;
    
cin >> Eingabe;
Ergebnis = Eingabe;

    
cout << Eingabe << endl;

system ("pause");

    return 0;
}


Ich hoffe das ich mein Problem ausreichend und verständlich Beschrieben habe.

Danke schon mal für die Mühe.

Mit freundlichen Grüßen

Nitro


Bearbeitung von Pablo:

ZUM TEUFEL MIT EUCH! IHR MÜSST SELBER DIE CPP TAGS BENUTZEN!


Dieser Post wurde am 27.12.2004 um 17:08 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.12.2004, 16:47 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Natürlich ist das möglich, allerdings müßtest Du Dir einen eigenen Parser basteln, der die Eingabe-Zeichenkette Stück für Stück durchgeht und unter Berücksichtigung der Rechenregeln (Klammern, Punkt-Vor-Strich etc.) rechnet... such mal im Forum, ich glaub, das hatten wir schon mal...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.12.2004, 17:14 Uhr
Pablo
Supertux
(Operator)


Möglich ja, einfach nein. Denn es ist die Aufgabe des Programmiers zu erkenne, was 1+4-5 bedeutet. Für den Computer ist das nur eine Zeichenkette, eine Folge von Zeichen ohne Bedeutung. Parsen ist sozusagen die Kunst aus Strings Strukturen zu erkennen.

Bsp: www.fun-soft.de/showtopic.php?threadid=4669#25768

Das ist ein ganz einfaches top-down Parser, das habe ich aus dem Kapitel 6 des Buches "die Programmerspache C++" von Bjarne Stroustrup. Als erstes überlegt sich man eine Grammtik die alle unsere Wörter erzeugt, d.h. eine Grammtik nicht im Sinne von deutscher Grammtik sondern von mathematischer Grammatik. Das ist nicht so ganz einfach im Board zu erklären, deswegen sage ich dazu nichts mehr.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.12.2004, 20:43 Uhr
~Nitro
Gast


Vielen Dank für die schnelle Antwort.
Ich werde dann mal wieder weiter programmieren.
Es hätte alles so einfach sein können :-)

MfG
Nitro
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: