Hi purehate,
hier ein code schnipsel:
/******************************************************************
* Ein einfacher
Taschenrechner - Der zu berechnende Ausdruck wird *
* über Kommandozeilenargumente angegeben. (x für Multiplikation) *
******************************************************************/
#include <string>
#include <iostream>
#include <sstream>
using std::cin; using std::cout; using std::endl;
using std::string; using std::istringstream;
/* ---------- Funktions - Deklarationen (Prototypen): ------------- */
void Ausgabe (double); // eine Gleitkommazahl ausgeben
double Fakultaet (int); // Fakultaet berechnen
/* ---------- Funktions - Definitionen: --------------------------- */
int main(int argc, char * argv[])
{
double op1, op2;
char op;
int i;
string ausdruck = "";
if (argc<2 || argc>4)
{ cout << "Fehler - zu wenige oder zu viele Argumente." << endl;
return 1;
}
for (i=1; i<argc; i++) ausdruck += argv
;
istringstream ist (ausdruck);
ist >> op1;
ist >> op;
switch (op)
{ case '+' : ist >> op2; Ausgabe (op1 + op2); break;
case '-' : ist >> op2; Ausgabe (op1 - op2); break;
case 'x' : ist >> op2; Ausgabe (op1 * op2); break;
case ':' :
case '/' : ist >> op2;
if (op2) Ausgabe (op1 / op2);
else cout << "Fehler: Division durch 0" << endl;
break;
case '!' : Ausgabe (Fakultaet (int(op1))); break;
default : cout << "Operator unbekannt." << endl;
}
return 0;
}
void Ausgabe (double x)
{
cout << "====> " << x << endl;
}
double Fakultaet (int n) // Fakultät rekursiv berechnen
{
if (n<=1) return 1;
else return n * Fakultaet(n-1);
}