Problem mit C++

Hi ich habe vor kurzer zeit mit C++ angefangen. Ich habe jetzt aber ien problem mit einem program hier der Quelltext.

//ConsoleApp2.
#include <iostream>
#include <cmath>
using namespace std;

int main()

{

int befehl;


cout << endl;
cout << " Zahlen addieren <1>" << endl;
cout << " Zahlen subtrahieren <2>" << endl;
cout << " Zahlen multiplizieren <3>" << endl;
cout << " Zahlen dividieren <4>" << endl;

cout << " Ihre Eingabe : " ;
cin >> befehl;

switch(befehl)
{
case 0:cout << endl;
cout << " programm beenden" << endl;
break;
case 1:cout << endl;
cout << " Geben sie die zu berechnende Formel an (z.B. 2+3): " ;

double x,y;
std::cin>>x>>y;
std::cout<<x+y;
break;
case 2:cout << endl;
cout << " Geben sie die zu berechnende Formel an (z.B. 4+3)( Es ist WICHTIG das sie plus eingeben): " ;

double a,c;
std::cin>>a>>c;
std::cout<<a-c;
break;

case 3:cout << endl;
cout << " Geben sie die zu berechnende Formel an (z.B. 4+3)( Es ist WICHTIG das sie plus eingeben): " ;

double d.e;

std::cin>>d>>e;
std::cout<<d*e;
break;

case 4:cout << endl;
cout << " Geben sie die zu berechnende Formel an (z.B. 4+3)( Es ist WICHTIG das sie plus eingeben): " ;

double f,g;
std::cin>>f>>g;
std::cout<<f/g;
break;

default:cout << endl;
cout << " Ungueltige Eingabe " << endl;
break;


}

cin.get();
cin.get();

return 0;
}

Wenn ich dort subtrahieren, multiplizieren ,oder dividieren muss ich immer + eingeben damit es funktioniert wenn ich subtrahieren will und 3-2 eingebe kommt 3-2=5 wenn ich aber im Bereich der Subtraktion 3+2 eingebe kommt 3+2=1. was hab ich falsch gemacht ??
 
Hmm versuch das ganze mal mit 2 getrennten cin>> also
cin>>a;
cin>>b;
und die zahlen bei double immer als kommazahl übergeben vermeidet probleme also im programmablauf 5.0 und 6.0 angeben anstatt 5 und 6
 
deine Eingabe wird als Vorzeichen gewertet!
3-(-2)=5
Computer sind doof und pingelich!
Aber rechnen ist eine echte Stärke von ihnen! :D

Gruss
 
wenn cin beim lesen der eingabe auf ein leerzeichen stößt denkt es die eingabe wär vorbei.
wenn du jetzt zwei eingaben mit cin per
Code:
cin >> a >> b;
einliest, musst du in der konsole die erste zahl gefolgt von einem leerzeichen gefolgt von der zweiten zahl eingeben und dann mit einem enter bestätigen. also z.b.:
4<leerzeichen>5<enter>
möglich ist auch
4<enter>5<enter>

wenn du das ganze übersichtlicher willst:
Code:
//...
cout <<  "Zwei Zahlen addieren" << endl;
cout << "Erste Zahl: ";
cin >> a;
cout << "Zweite Zahl: ";
cin >> b;
cout <<  a << "+" << b << "=" << a+b << endl;
//...
 
Tach

Der Ansatz ist viel zu Kompliziert und macht den Code unübersichtlich.
Aber lass mal hab auch so angefangen.

Hier mal ein Beispiel wie man es einfacher machen könnte.
Code:
#include <iostream.h>

int main(void)
{
  double zahl1=0,zahl2=0,ergebnis=0;
  char op;

  cout <<"Grundrechen v0.01"<<endl<<"Eingabe erfolgt in der Form"<<endl\
       <<"Zahl1 Lehrtaste Operation Lehrtaste Zahl2"<<endl\
       <<"z.b. 12 + 23"<<endl;

  cout <<"Eingabe:";
  cin>>zahl1>>op>>zahl2;

  /*hier Könnte man Fehlerbehandlung machen
    z.b. Wenn Buchstaben eingeben werden
    oder bei op mehr als 1 Zeichen eingeben werden */

  switch (op)
  {
   case '+': ergebnis=zahl1+zahl2; break;
   case '-': ergebnis=zahl1-zahl2; break;
   case '*': ergebnis=zahl1*zahl2; break;
   case '/': ergebnis=zahl1/zahl2; break;
   default: cout<<"Kein Operationszeichen eingegeben."<<endl;exit(1);
  }
  cout <<"Das Ergebis ist: "<<ergebnis<<endl;

  return 0;
}

Wie nidda es schon gezeigt hat kann man mit cin und der Leertaste mehrere
Variablen einlesen warum denn auch nicht gleich das Operationszeichen.
Und später kann alle Eingaben verarbeiten und Ausgaben machen.

mfg
 
ok danke aber ich habs jetzt so gemacht.

Antworten | Zitieren | Ändern | Melden Top

--------------------------------------------------------------------------------
Ok danke aber ich habs schon hinbekommen.

///ConsoleApp9
#include <iostream>
#include <cmath>
using namespace std;

int main()

{

int befehl = -1;

while(befehl != 0)
{


cout << endl;
cout << " Zahlen addieren <1>" << endl;
cout << " Zahlen subtrahieren <2>" << endl;
cout << " Zahlen multiplizieren <3>" << endl;
cout << " Zahlen dividieren <4>" << endl;

cout << " Ihre Eingabe : " ;
cin >> befehl;

switch(befehl)
{
case 0:cout << endl;
cout << " programm beenden" << endl;
break;
case 1:cout << endl;
double a;
double b;


cout << "Zwei Zahlen addieren" << endl;
cout << "Erste Zahl: ";
cin >> a;
cout << "Zweite Zahl: ";
cin >> b;
cout << a << "+" << b << "=" << a+b << endl;





break;
case 2:cout << endl;
double c;
double d;


cout << "Zwei Zahlen addieren" << endl;
cout << "Erste Zahl: ";
cin >> c;
cout << "Zweite Zahl: ";
cin >> d;
cout << c << "-" << d << "=" << c-d << endl;








break;
case 3:cout << endl;
double e;
double f;


cout << "Zwei Zahlen addieren" << endl;
cout << "Erste Zahl: ";
cin >> e;
cout << "Zweite Zahl: ";
cin >> f;
cout << e << "*" << f << "=" << e*f << endl;






break;
case 4:cout << endl;
double g;
double h;


cout << "Zwei Zahlen addieren" << endl;
cout << "Erste Zahl: ";
cin >> g;
cout << "Zweite Zahl: ";
cin >> h;
cout << g << "/" << h << "=" << g/h << endl;






break;
default:cout << endl;
cout << " Ungueltige Eingabe " << endl;
break;


}
fflush(stdin);
getchar();
}

cin.get();
cin.get();

return 0;
}
 
Zurück
Oben