mehrere Fehler



  • ich noch ein ziemlicher anfänger in c++ und hatte mich mal an etwas versucht

    leider treten immer fehler auf.

    kann mir einer helfen und sagen was ich falsch gemacht ha

    #include <cstdlib>
    #include <iostream>
    #include <cmath>
    using namespace std;

    int main(int argc, char *argv[])
    {
    string befehl;
    string ergebnis;
    double Zahl1;
    double Zahl2;
    double ergebnis2;
    double eingabe;
    double wurzel;
    double fahrenheit;
    double celsius;

    cout << endl;
    cout << "Menue" << endl;
    cout << "Crocorechner <1>" << endl;
    cout << "Wurzelberechner <2>" << endl;
    cout << "Celsiusberechner <3>" << endl;
    cout << "Springball <4>" << endl;
    cout << "Theorechner <5>" << endl;
    cout << "Zinsrechner <6>" << endl;
    cout << "Programm Beenden <0>" << endl;
    cout << endl;

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

    switch(befehl)
    {
    case 0: cout << endl;
    cout << "Programm beenden" << endl;
    break;
    case 1: cout << endl;
    cout << "Bitte gib zwei Zahlen ein: " << endl << endl;
    cin >> Zahl1;
    cin >> Zahl2;
    cin.get();
    cout << "Gib eine Rechenoption ein " << endl;
    cin >> ergebnis;
    cin.get();

    if ( ergebnis == "+" )
    {
    ergebnis2 = ( Zahl1 + Zahl2 );

    }
    if ( ergebnis == "-" )
    {
    ergebnis2 = ( Zahl1 - Zahl2 );
    }
    if ( ergebnis == "*" )
    {
    ergebnis2 = ( Zahl1 * Zahl2 );
    }
    if ( ergebnis == "/" )
    {
    ergebnis2 = ( Zahl1 / Zahl2 );
    }

    cout << "Das Ergebnis ist : " << ergebnis2 << endl << endl;
    }
    case 2: cout << endl;

    cout << "Programm zur Wurzelberechnung" << endl;
    cout << endl;
    cout << "Geben sie bitte eine zahl ein: ";
    cin >> eingabe;
    getchar();
    if (eingabe >=0)
    {
    wurzel = sqrt(eingabe);
    cout << "Wurzel von " << eingabe << " = "
    << wurzel << endl;
    }
    else
    {
    cout << "Wurzel negativer Zahlen kann nicht "
    "berechnet werden." << endl;
    }

    cout << endl;
    cout << "Programm wird beendet.";

    case 3:
    cout << "Temperatur in Fahrenheit:";
    cin >> fahrenheit;
    getchar ();

    celsius = (fahrenheit - 32) * 5.0/9.0;
    cout.precision(2);
    cout << fixed;

    cout << fahrenheit
    << " Grad Fahrenheit entsprechen "
    << celsius
    << " Grad Celsius" << endl;

    cout.precision();
    cout << fixed;
    getchar ();
    case 4:
    cout << endl;
    cout << "Kommt noch" << endl;
    cin.get()
    case 5:
    cout << endl;
    case 6:
    cout << endl;
    cout << "Ist unterwegs";
    cin.get()

    system("PAUSE");
    return EXIT_SUCCESS;



    1. Du hast die CPP-Tags vergessen. Unten korrigiert.
    2. Du hast vergessen die Compiler-Fehler zu posten.
    3. Zeile 1: Der Header cstdlib ist überflüssig (wenn Nr 6 beachtet).
    4. Zeile 34: Switch akzeptiert nur Ganzzahl-Typen. String ist kein Ganzzahltyp.
    5. Zeile 68, 92, 110, 114 116: Vor den jeweiligen neuen cases hast du das break vergessen.
    6. Zeile 124: Statt EXIT_SUCCESS solltest du lieber 0 zurückgeben.
    7. Zeile 125: Abschließende } fehlt.

    crocojunk schrieb:

    #include <cstdlib>
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        string befehl;
        string ergebnis;
    	double Zahl1;
    	double Zahl2;
    	double ergebnis2;
        double eingabe;
    	double wurzel;
    	double fahrenheit;
       double celsius;
        
    	
    	
    	cout << endl;
        cout << "Menue" << endl;
        cout << "Crocorechner        <1>" << endl;
        cout << "Wurzelberechner     <2>" << endl;
        cout << "Celsiusberechner    <3>" << endl;
        cout << "Springball          <4>" << endl;
        cout << "Theorechner         <5>" << endl;
        cout << "Zinsrechner         <6>" << endl;
        cout << "Programm Beenden    <0>" << endl;
        cout << endl;
        
        cout << " Ihre Eingabe : ";
        cin >> befehl;
        
        switch(befehl)
        {
         case 0: cout << endl;
                 cout << "Programm beenden" << endl;
                 break;
         case 1: cout << endl;
               	cout << "Bitte gib zwei Zahlen ein: " << endl << endl;
    	cin >> Zahl1;
    	cin >> Zahl2;
    	cin.get();
    	cout << "Gib eine Rechenoption ein " << endl;
    	cin >> ergebnis;
    	cin.get();
    
    	if ( ergebnis == "+" )
    {
    	ergebnis2 = ( Zahl1 + Zahl2 );
    	
    	}
    	if ( ergebnis == "-" )
    {
    	ergebnis2 = ( Zahl1 - Zahl2 );
    }
    	if ( ergebnis == "*" )
    {
    	ergebnis2 = ( Zahl1 * Zahl2 );
    }
    	if ( ergebnis == "/" )
    {
    	ergebnis2 = ( Zahl1 / Zahl2 );
    }
    
    	cout << "Das Ergebnis ist : " << ergebnis2 << endl << endl;
    }
    case 2: cout << endl;
    
    	cout << "Programm zur Wurzelberechnung" << endl;
    	cout << endl;
    	cout << "Geben sie bitte eine zahl ein: ";
    	cin >> eingabe;
    	getchar();
    	if (eingabe  >=0)
    	{
    		wurzel = sqrt(eingabe);
    			cout << "Wurzel von " << eingabe << " = "
    				<< wurzel << endl;
    	}
    	else
    	{
    		cout << "Wurzel negativer Zahlen kann nicht "
    				"berechnet werden." << endl;
    	}
    
    	cout << endl;
    	cout << "Programm wird beendet.";
    	
    case 3:
    	 cout << "Temperatur in Fahrenheit:";
    	cin >> fahrenheit;
    	getchar ();
    
       celsius = (fahrenheit - 32) * 5.0/9.0;
    	cout.precision(2);
    	cout <<  fixed;
    
       cout << fahrenheit
    	    << " Grad Fahrenheit entsprechen "
    		<< celsius
    		<< " Grad Celsius" << endl;
       
       
       cout.precision();
       cout <<  fixed;
       getchar ();
    case 4:
    	cout << endl;
    	cout << "Kommt noch" << endl;
    	cin.get()
    case 5:
    	cout << endl;
    case 6:
    	cout << endl;
    	cout << "Ist unterwegs";
    	cin.get()
        
        
        
        system("PAUSE");
        return EXIT_SUCCESS;
    


  • er zeigt immer noch fehler an immer dieselben

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        double befehl;
        string ergebnis;
    	double Zahl1;
    	double Zahl2;
    	double ergebnis2;
        double eingabe;
    	double wurzel;
    	double fahrenheit;
       double celsius;
    
    	cout << endl;
        cout << "Menue" << endl;
        cout << "Crocorechner        <1>" << endl;
        cout << "Wurzelberechner     <2>" << endl;
        cout << "Celsiusberechner    <3>" << endl;
        cout << "Springball          <4>" << endl;
        cout << "Theorechner         <5>" << endl;
        cout << "Zinsrechner         <6>" << endl;
        cout << "Programm Beenden    <0>" << endl;
        cout << endl;
    
        cout << " Ihre Eingabe : ";
        cin >> befehl;
    
        switch(befehl)
        {
         case 0: cout << endl;
                 cout << "Programm beenden" << endl;
                 break;
         case 1: cout << endl;
               	cout << "Bitte gib zwei Zahlen ein: " << endl << endl;
    	cin >> Zahl1;
    	cin >> Zahl2;
    	cin.get();
    	cout << "Gib eine Rechenoption ein " << endl;
    	cin >> ergebnis;
    	cin.get();
    
    	if ( ergebnis == "+" )
    {
    	ergebnis2 = ( Zahl1 + Zahl2 );
    
    	}
    	if ( ergebnis == "-" )
    {
    	ergebnis2 = ( Zahl1 - Zahl2 );
    }
    	if ( ergebnis == "*" )
    {
    	ergebnis2 = ( Zahl1 * Zahl2 );
    }
    	if ( ergebnis == "/" )
    {
    	ergebnis2 = ( Zahl1 / Zahl2 );
    }
    
    	cout << "Das Ergebnis ist : " << ergebnis2 << endl << endl;
    }
    	break;
    case 2: cout << endl;
    	cout << "Programm zur Wurzelberechnung" << endl;
    	cout << endl;
    	cout << "Geben sie bitte eine zahl ein: ";
    	cin >> eingabe;
    	getchar();
    	if (eingabe  >=0)
    	{
    		wurzel = sqrt(eingabe);
    			cout << "Wurzel von " << eingabe << " = "
    				<< wurzel << endl;
    	}
    	else
    	{
    		cout << "Wurzel negativer Zahlen kann nicht "
    				"berechnet werden." << endl;
    	}
    
    	cout << endl;
    	cout << "Programm wird beendet.";
    	break;
    
    case 3:
    	 cout << "Temperatur in Fahrenheit:";
    	cin >> fahrenheit;
    	getchar ();
    
       celsius = (fahrenheit - 32) * 5.0/9.0;
    	cout.precision(2);
    	cout <<  fixed;
    
       cout << fahrenheit
    	    << " Grad Fahrenheit entsprechen "
    		<< celsius
    		<< " Grad Celsius" << endl;
    
       cout.precision();
       cout <<  fixed;
       getchar ();
       break;
    case 4:
    	cout << endl;
    	cout << "Kommt noch" << endl;
    	cin.get()
    		break;
    case 5:
    	cout << endl;
    	cout << "Ist unterwegs" << endl;
    	break;
    case 6:
    	cout << endl;
    	cout << "Ist unterwegs";
    	cin.get()
    		break;
    	}
    
        system("PAUSE");
        return 0;
    	}
    }
    

  • Mod

    - double ist ebenfalls kein Ganzzahltyp.
    - Deine Klammerung hast du nicht (oder falsch) korrigiert (Einrückung würde dir helfen, die Fehler zu erkennen.
    - Nach cin.get müssen Semikolons



  • so das hab ich jetz gemacht ich hab jetzt int genommen er zeigt mir aber wie volgt die fehler an

    break statement not within loop or switch
    case label 2 not within a switch statement
    das geht dann bis case6

    dann kommen errors von zeile 124 bis 132

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int befehl;
        string ergebnis;
    	double Zahl1;
    	double Zahl2;
    	double ergebnis2;
        double eingabe;
    	double wurzel;
    	double fahrenheit;
       double celsius;
    
    	cout << endl;
        cout << "Menue" << endl;
        cout << "Crocorechner        <1>" << endl;
        cout << "Wurzelberechner     <2>" << endl;
        cout << "Celsiusberechner    <3>" << endl;
        cout << "Springball          <4>" << endl;
        cout << "Theorechner         <5>" << endl;
        cout << "Zinsrechner         <6>" << endl;
        cout << "Programm Beenden    <0>" << endl;
        cout << endl;
    
        cout << " Ihre Eingabe : ";
        cin >> befehl;
    
        switch(befehl)
        {
         case 0: cout << endl;
                 cout << "Programm beenden" << endl;
                 break;
         case 1: cout << endl;
               	cout << "Bitte gib zwei Zahlen ein: " << endl << endl;
    	cin >> Zahl1;
    	cin >> Zahl2;
    	cin.get();
    	cout << "Gib eine Rechenoption ein " << endl;
    	cin >> ergebnis;
    	cin.get();
    
    	if ( ergebnis == "+" )
    {
    	ergebnis2 = ( Zahl1 + Zahl2 );
    
    	}
    	if ( ergebnis == "-" )
    {
    	ergebnis2 = ( Zahl1 - Zahl2 );
    }
    	if ( ergebnis == "*" )
    {
    	ergebnis2 = ( Zahl1 * Zahl2 );
    }
    	if ( ergebnis == "/" )
    {
    	ergebnis2 = ( Zahl1 / Zahl2 );
    }
    
    	cout << "Das Ergebnis ist : " << ergebnis2 << endl << endl;
    }
    	break;
    case 2: 
         cout << endl;
    	cout << "Programm zur Wurzelberechnung" << endl;
    	cout << endl;
    	cout << "Geben sie bitte eine zahl ein: ";
    	cin >> eingabe;
    	getchar();
    	if (eingabe  >=0)
    	{
    		wurzel = sqrt(eingabe);
    			cout << "Wurzel von " << eingabe << " = "
    				<< wurzel << endl;
    	}
    	else
    	{
    		cout << "Wurzel negativer Zahlen kann nicht "
    				"berechnet werden." << endl;
    	}
    
    	cout << endl;
    	cout << "Programm wird beendet.";
    	break;
    
    case 3:
    	 cout << "Temperatur in Fahrenheit:";
    	cin >> fahrenheit;
    	getchar ();
    
       celsius = (fahrenheit - 32) * 5.0/9.0;
    	cout.precision(2);
    	cout <<  fixed;
    
       cout << fahrenheit
    	    << " Grad Fahrenheit entsprechen "
    		<< celsius
    		<< " Grad Celsius" << endl;
    
       cout.precision();
       cout <<  fixed;
       getchar ();
       break;
    case 4:
    	cout << endl;
    	cout << "Kommt noch" << endl;
    	cin.get();
    		break;
    case 5:
    	cout << endl;
    	cout << "Ist unterwegs" << endl;
    	break;
    case 6:
    	cout << endl;
    	cout << "Ist unterwegs";
    	cin.get();
    		break;
    	}
    
        system("PAUSE");
        return 0;
    
    }
    

  • Mod

    Das liegt an der falschen Klammerung. Zum Beispiel ist die Klammer in Zeile 66 zu viel. Ob es dann richtig wird, kann ich vom Hingucken her nicht sagen, da der Code nicht eingerückt ist.



  • nein in zeile 66 ist kein fehler angezeigt

    ich versteh das nicht.


  • Administrator

    @crocojunk,
    Am besten rückst du den Code mal sinnvoll ein, dann wirst du es verstehen. SeppJ hat dir genau gesagt, wo der Fehler liegt. Der Kompiler sagt dir nicht, wo deine Fehler liegen, sondern wo er plötzlich Probleme mit der Syntax bekommen hat. Somit kann dein Fehler auch weiter oben sein als die Stelle, bei welcher der Kompiler meckert.

    Grüssli



  • nutze die C/C++ Tags für C oder C++ Quelltext

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int befehl;
        int quit=0;
        string ergebnis;
        double Zahl1;
        double Zahl2;
        double ergebnis2;
        double eingabe;
        double wurzel;
        double fahrenheit;
        double celsius;
    
        do
        {
            cout << endl;
            cout << "Menue" << endl;
            cout << "Crocorechner        <1>" << endl;
            cout << "Wurzelberechner     <2>" << endl;
            cout << "Celsiusberechner    <3>" << endl;
            cout << "Springball          <4>" << endl;
            cout << "Theorechner         <5>" << endl;
            cout << "Zinsrechner         <6>" << endl;
            cout << "Programm Beenden    <0>" << endl;
            cout << endl;
    
            cout << " Ihre Eingabe : ";
            cin >> befehl;
            cout << endl;
    
            switch (befehl)
            {
            case 0:
                cout << "Programm beenden" << endl;
                quit=1;
                break;
            case 1:
                cout << "Bitte gib zwei Zahlen ein: " << endl << endl;
                cin >> Zahl1;
                cin >> Zahl2;
                cin.get();
                cout << "Gib eine Rechenoption ein " << endl;
                cin >> ergebnis;
                cin.get();
    
                if ( ergebnis == "+" )
                {
                    ergebnis2 = ( Zahl1 + Zahl2 );
    
                }
                if ( ergebnis == "-" )
                {
                    ergebnis2 = ( Zahl1 - Zahl2 );
                }
                if ( ergebnis == "*" )
                {
                    ergebnis2 = ( Zahl1 * Zahl2 );
                }
                if ( ergebnis == "/" )
                {
                    ergebnis2 = ( Zahl1 / Zahl2 );
                }
    
                cout << "Das Ergebnis ist : " << ergebnis2 << endl << endl;
    
                break;
            case 2:
                cout << "Programm zur Wurzelberechnung" << endl;
                cout << endl;
                cout << "Geben sie bitte eine zahl ein: ";
                cin >> eingabe;
                getchar();
                if (eingabe  >=0)
                {
                    wurzel = sqrt(eingabe);
                    cout << "Wurzel von " << eingabe << " = "
                    << wurzel << endl;
                }
                else
                {
                    cout << "Wurzel negativer Zahlen kann nicht "
                    "berechnet werden." << endl;
                }
    
                cout << endl;
                cout << "Programm wird beendet.";
                break;
    
            case 3:
                cout << "Temperatur in Fahrenheit:";
                cin >> fahrenheit;
                getchar ();
    
                celsius = (fahrenheit - 32) * 5.0/9.0;
                cout.precision(2);
                cout <<  fixed;
    
                cout << fahrenheit
                << " Grad Fahrenheit entsprechen "
                << celsius
                << " Grad Celsius" << endl;
    
                cout.precision();
                cout <<  fixed;
                getchar ();
                break;
            case 4:
                cout << "Kommt noch" << endl;
                cin.get();
                break;
            case 5:
                cout << "Ist unterwegs" << endl;
                break;
            case 6:
                cout << "Ist unterwegs";
                cin.get();
                break;
            }
        }
        while (quit);
    
        return 0;
    }
    

    system muss nicht sein 😃
    einige Redundanzen bearbeitet



  • ein neues problem wenn ich z.B 2 eintippe kommt das was ich wollte und dann geb ich die zahl ein anscließend wenn ich enter drücke verschwindet das feld.

    ich hab es mit cin.get(); versucht klappt nicht auch mit getchar(); funzt es nicht. kann mir das einer erklären??



  • Ich dachte das hättest du schon hinter dir - eine der meistgestellten Fragen siehe FAQ 😉
    Eine Möglichkeit, starte von Kommandozeile.



  • War zu voreilig, vergess erst mal meinen vorigen Text 😡

    Abfrage

    }
        while (!quit); // so geht es besser - oder?
    
        return 0;
    }
    

Anmelden zum Antworten