taschenrechner < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 13:36 Fr 02.04.2010 | Autor: | max_e |
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
hallo,
ich soll ein programm machen das einfache rechenarten wie +-/* beherrscht. Nun habe ich gemacht und geht:
a) jedoch denke ich daran ein haupmenü zu machen, wo der user dann auswählen kann was er macht, bloss habe ich da keine ahnung. Wie kann ich da vorgehen..?
#include <iostream>
using namespace std;
int main()
{
double zahl1;
double zahl2;
char zeichen1;
char zeichen2;
cout << "Gib Zahl 1 ein: ";
cin >> zahl1;
cout << "Gib Zahl 2 ein: ";
cin >> zahl2;
cout << zahl1 << "+" << zahl2 << "=" << (zahl1+zahl2) << endl;
cout << zahl1 << "-" << zahl2 << "=" << (zahl1-zahl2) << endl;
cout << zahl1 << "*" << zahl2 << "=" << (zahl1*zahl2) << endl;
cout << zahl1 << "/" << zahl2 << "=" << (zahl1/zahl2) << endl;
cout << "Gib Buchstabe 1 ein: ";
cin >> zeichen1;
cout << "Gib Buchstabe 2 ein: ";
cin >> zeichen2;
cout << zeichen1 << "+" << zeichen2 << "=" << (char)((int)zeichen1+(int)zeichen2) << endl;
//system("PAUSE");
return 0;
|
|
|
|
Hallo!
Was hälst du von einer anderen Idee?
cin >> zahl1 >> zeichen >> zahl2;
Das cin holt sich immer nur soviele Zeichen, bis ein Leerzeichen auftritt.
Jetzt kannst du also 2 + 2 eingeben, darfst die Leerzeichen aber nicht vergessen.
In jedem Fall kannst du anschließend sowas machen:
if(zeichen1=='+'){
//addieren
}
if(zeichen1=='/'){
//teilen
}
...
oder besser:
switch(zeichen1){
case '+':
//addieren
break;
case '/':
//teilen
break;
...
default:
cout << "ungültige Eingabe"<<endl;
}
Ich sehe aber noch was merkwürdiges bei dir:
Ein char ist in C ein 1Byte großer Datentyp, also eigentlich eine Zahl. Man benutzt chars gerne für Buchstaben, aber es gibt da so ne interne "Umrechnungstabelle" (Google -> ASCII-Tabelle)
das cout versucht daher auch, chars als Zeichen auszugeben.
Aber weil chars auch nur Zahlen sind, kannst du auch gleich so rechnen:
cout << (zeichen1+zeichen2)<<endl;
das umcasten in ein int ist unnötig, (und kann unter Umständen zu merkwürdigen Effekten führen)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:11 Fr 02.04.2010 | Autor: | max_e |
ok vielen dank
|
|
|
|