Herleitung?!



  • Hi ich habe mal eine Frage. Ich programmiere noch nicht sehr lang und dies ist mein erstes "größeres" Projekt. Ich weiß nicht was da los ist aber ich bekomme sehr viele Fehlermeldungen. Ich kopiere mal die erste rein da es immer die selbe Fehlermeldung ist:

    1>c:\users\daniel spiele\documents\visual studio 2010\projects\rechner\rechner\rechner.cpp(47): error C2784: "std::basic_ostream<_Elem,_Traits> &std::operator <<(std::basic_ostream<_Elem,_Traits> &,const std::error_code &)": template-Argument für "std::basic_ostream<_Elem,_Traits> &" konnte nicht von "std::istream" hergeleitet werden.

    Und hier der Text:

    #include "iostream"
    using namespace std;
    
    int main ()
    {
    	int fEntscheidung;
    	int fAuswahl;
    	int f1Zahl;
        int f2Zahl;
    
    	cout <<"Willkommen in meinem Rechenprogramm"<<endl;
    	cout <<"Bitte geben sie ihre Rechenart an: \n1 = +\n2=-\n3=*\n4=/"<<endl;
    	cin >>fAuswahl;
    
    	{
    
    		if (fAuswahl == 1)
    			cout <<"Geben sie ihre erste Zahl ein: "<<endl;
    	        cin >> f1Zahl;
    			cout <<"Geben sie ihre zweite Zahl ein: "<<endl;
    			cin >> f2Zahl;
    
    				cout<<"Ihr Ergebnis ist: "<<f1Zahl+f2Zahl<<endl;
    	}
    
    	{
    		if (fAuswahl == 2)
    			cout <<"Geben sie ihre erste Zahl ein: "<<endl;
    		    cin >> f1Zahl;
    			cout <<"Geben sie ihre zweite Zahl ein: "<<endl;
    			cin >> f2Zahl;
    
    			cout <<"Ihr Ergebnis ist: "<<f1Zahl-f2Zahl<<endl;
    	}
    			{
    	if (fAuswahl == 3)
    		cout <<"Geben sie ihre erste Zahl ein: "<<endl;
    		    cin >> f1Zahl;
    			cout <<"Geben sie ihre zweite Zahl ein: "<<endl;
    			cin >> f2Zahl;
    				cout <<"Ihr Ergebnis ist: "<<f1Zahl-f2Zahl<<endl;
    }
    
    {
    	if (fAuswahl == 4)
    		cout<<"Wollen sie eine Kommazahl (1) oder einen Rest (2)?"<<endl;
    		cin <<fEntscheidung;
    		system ("pause");
    		if (fEntscheidung == 1)
    		cout <<"Geben sie ihre erste Zahl ein: "<<endl;
    		    cin >> f1Zahl;
    			cout <<"Geben sie ihre zweite Zahl ein: "<<endl;
    			cin >> f2Zahl;
    				cout <<"Ihr Ergebnis ist: "<<f1Zahl/f2Zahl<<endl;
            if (fEntscheidung == 2)
    			cout <<"Geben sie ihre erste Zahl ein: "<<endl;
    		    cin >> f1Zahl;
    			cout <<"Geben sie ihre zweite Zahl ein: "<<endl;
    			cin >> f2Zahl;
    				cout <<"Ihr Ergebnis ist: "<<f1Zahl/f2Zahl<<endl;
    				cout <<"Ihr Rest ist: "<<f1Zahl%f2Zahl<<endl;
    
    }
    system ("pause");
    return 0;
    }
    


  • cin <<fEntscheidung;
    

    muss

    cin >> fEntscheidung;
    

    sein. Übrigens ist es üblicher, Systemheader mit <> einzuschließen, d.h.

    #include <iostream>
    


  • Was genau bringt eigentlich das "f" am Anfang der Variablennamen?

    Übrigens solltest du die Codeduplizierung vermeiden und ähnlichen oder sogar gleichen Code zusammenfassen. Auch switch und Funktionen wären eine Idee. Zudem würde ich Variablen so spät wie möglich deklarieren, also erst wenn sie gebraucht werden. Und wie das mit den Blöcken funktioniert, kannst du dir auch gleich nochmals anschauen...



  • Nexus schrieb:

    Und wie das mit den Blöcken funktioniert, kannst du dir auch gleich nochmals anschauen...

    Ich mach's doch mal genauer...

    Deine if-Abfragen machen nicht, was du vielleicht denkst! if-Abfragen ohne geschweifte Klammer bedingen immer nur eine Zeile. Du möchstest allerdings mehrere Anweisungen bedingen.

    falsch:

    if (fAuswahl == 1)
                cout <<"Geben sie ihre erste Zahl ein: "<<endl; //wenn Auswahl!=1 ist, wird NUR DIESE ZEILE nicht ausgeführt, die folgenden Zeilen haben nichts mehr mit dem if-Statement zu tun!
                cin >> f1Zahl;
                cout <<"Geben sie ihre zweite Zahl ein: "<<endl;
                cin >> f2Zahl;
    

    richtig:

    if (fAuswahl == 1) { //mit geschweifter Klammer gehören alle eingeschlossenen Zeilen zum if
                cout <<"Geben sie ihre erste Zahl ein: "<<endl;
                cin >> f1Zahl;
                cout <<"Geben sie ihre zweite Zahl ein: "<<endl;
                cin >> f2Zahl;
            }
    

Anmelden zum Antworten