Einen wunderschönen 2. Advents-Abend.
Ich bin langsam am verzeifeln. Nachdem ich nun eine Woche lang in meinem C++ Buch gelesen habe und dachte, ich hätte die Theorie dahinter verstanden, wollte ich mich mal an ein wirklich einfaches Beispiel, fern ab von jedem Beispiel in Buch oder Internet wagen.
Es soll ein total schlichter Kommandozeilen Rechner sein, der nur die 4 Grundrechenarten kann.
Eingegeben werden soll die Rechnung ganz einfach als 234+43 zum Beispiel.
Ok also habe ich mich freudig ans Werk gemacht.
Die Header sollten ja klar sein. Die Variablen Deklaration habe ich mir folgendermaßen gedacht. sInput ist die eingegebene Rechnung, iPosition wird später gebraucht, um die Position des Rechezeichens zurückzugeben und iNumber1 und iNumbe2 sollen die zwei Zahlen enthalten, mit denen gerechnet wird.
Dann geht es im Code folgendermaßen weiter
Alles soweit kein Problem. Doch jetzt folgt der Teil an dem ich verzweifle.
Im folgenden will ich zum einen die Funktion strcspn() nutzen um die Position des Rechenzeichens zu ermitteln. Der Haken, die Funktion erwartet als Parameter Werte vom Typ char.
Im folgenden wollte ich jedoch, die Methode substr() der Klasse string nutzen um dann die zwei Zahlen in getrennte Variablen zu packen. Das ist ja rein theoretisch mit der Information über die Position des Rechenzeichens auch kein Problem, aber wie gesagt:
substr() kann ich nur nutzen, wenn die Variable vom Typ string ist aber strcspn() erwartet chars als Übergabewerte. Ich bin echt am verzwefeln und habe auf Grund der nur dezentral vorhandenen Dokumentationen echte Probleme.
Nutze Dev-C++ zum entwickeln und hier nochmal der komplette Code.
Ich bin langsam am verzeifeln. Nachdem ich nun eine Woche lang in meinem C++ Buch gelesen habe und dachte, ich hätte die Theorie dahinter verstanden, wollte ich mich mal an ein wirklich einfaches Beispiel, fern ab von jedem Beispiel in Buch oder Internet wagen.
Es soll ein total schlichter Kommandozeilen Rechner sein, der nur die 4 Grundrechenarten kann.
Eingegeben werden soll die Rechnung ganz einfach als 234+43 zum Beispiel.
Ok also habe ich mich freudig ans Werk gemacht.
Code:
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
string sInput;
int iPosition,iNumber1,iNumber2;
string sRechenzeichen = "+-/*";
Dann geht es im Code folgendermaßen weiter
Code:
cout << "Bitte geben Sie die Rechnung ein: ";
cin >> sInput;
cout << endl;
Im folgenden will ich zum einen die Funktion strcspn() nutzen um die Position des Rechenzeichens zu ermitteln. Der Haken, die Funktion erwartet als Parameter Werte vom Typ char.
Im folgenden wollte ich jedoch, die Methode substr() der Klasse string nutzen um dann die zwei Zahlen in getrennte Variablen zu packen. Das ist ja rein theoretisch mit der Information über die Position des Rechenzeichens auch kein Problem, aber wie gesagt:
substr() kann ich nur nutzen, wenn die Variable vom Typ string ist aber strcspn() erwartet chars als Übergabewerte. Ich bin echt am verzwefeln und habe auf Grund der nur dezentral vorhandenen Dokumentationen echte Probleme.
Nutze Dev-C++ zum entwickeln und hier nochmal der komplette Code.
Code:
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
string sInput;
int iPosition,iNumber1,iNumber2;
string sRechenzeichen = "+-/*";
cout << "Bitte geben Sie die Rechnung ein: ";
cin >> sInput;
cout << endl;
//Ab hier sind das ganze Test, es krampfhaft über Zeiger oder Ähnliches zu versuchen
//sind aber alle fehlgeschlagen.
char * cpInput;
cpInput = sInput;
char * cpRechenzeichen;
cpRechenzeichen = sRechenzeichen;
iPosition = strcspn(cpInput,cpRechenzeichen);
cout << iPosition << endl;
string sTest = cInput;
iNumber1 = atoi(sTest.substr(0,iPosition)); //Hier wollte ich dann den Substring in eine Variable vom typ Int umwandeln.
cout << iNumber1;
system("PAUSE");
}