problem bei meinem mini prog


  • Administrator

    Fehler:
    1. Keine genaue Fehlerbeschreibung geliefert.
    2. if ( gefahr == "n" || gefahr == "N")
    "x" liefert ein char const*
    'x' liefert ein char
    if ( gefahr == 'n' || gefahr == 'N')

    Warnungen:
    1. Unnötig viele Headers inkludiert.
    2. C++ C-Headers inkludiert. Man sollte wenn möglich nicht C und C++ mixen.
    3. getch() ist nicht Platform unabhängig, genauso wie <conio.h>
    4. Es wäre eine Überlegung wert, ob man nicht besser mit float oder double rechnen möchte.
    5. Pass auf mit der Verwendung von using namespace std; .

    Grüssli



  • ähm also ich arbeite zurzeit mit Dev-C++ und da tritt der fehler beim kompilieren auf. Als Fehlerlog bekomme ich

    In function int main()': invalid operands of types \float' and `const char[2]' to binary operator==' invalid operands of types \float' and `const char[2]' to binary `operator=='
    no match for 'operator+' in 'rw + bw'

    also ich habs jetzt mit float versucht aber hat nichts geändert...als ich dass ganze ohne if else funktion gemacht habe hats auch funktioniert


  • Administrator

    phreakcoder schrieb:

    ... Dev-C++ ...

    3. Fehler: Du Verwendest Dev-C++
    Nimm lieber Code::Blocks oder Microsoft Visual Studio 2008 Express Edition.
    Dev-C++ wird nicht mehr weiterentwickelt und gilt als deprecated!

    Grüssli



  • microsoft visual studio will ich wenn möglich vermeiden da es sehr groß ist und ich nur eine ISDN i-net verbindung habe



  • code::blocks ist ziemlich klein, ich glaub 16 mByte, ohne compiler und 22 mit mingw compiler



  • ok bin gerade ma laden...aber ist der codeblock sonst ok oder ist noch ein fehler drin?



  • fehler kenne ich keine, du musst nur schauen dass das mit dem compiler klappt, das erste mal als ich es installiert hatte, konnte ich nix kompileren^^

    ach ja du kannst dir auch eine DVD mit dem kompletten VS 2008 EE bestellen bei microsoft


  • Administrator

    phreakcoder schrieb:

    ok bin gerade ma laden...aber ist der codeblock sonst ok oder ist noch ein fehler drin?

    Ich hoffe mal du hast meine Fehler 1 und 2 beachtet.
    Ehm, doch habe gerade dank der Fehlermeldung noch einen Fehler gefunden:

    int geschw, gefahr;
        string bw; // bw ist string
    
        cout << "Geben Sie eine Geschwindigkeit (km/h) ein: \n\n";
        cin >> geschw;
        cout << "Gefahrbremsung? (j/n)" << endl;
        cin >> gefahr;
    
        if ( gefahr == "n" || gefahr == "N")
        {
         int bw = (geschw / 10) * (geschw / 10); // bw ist int und wird gleich wieder verworfen
        }
    
        else
        {
        int bw = ((geschw / 10) * (geschw / 10)) / 2; // bw ist int und wird gleich wieder verworfen
        }
    
        int rw = (geschw / 10) * 3; // scheint ok zu sein
        int aw = rw + bw; // das geht nicht. bw ist hier ein leerer string.
    

    Kann es sein, dass du oben bei string bw eigentlich int bw meintest und unten die ints vor dem bw weglassen?
    Wenn das nicht klar ist, dann empfehle ich dringend nochmals die Grundlagen von C++ durch zu ackern!

    Grüssli



  • ok ähm dadurch dass ich so gut wie alles ausprobiert habe xD, habe ich das wahrscheinlich übersehen...aber na gut hier mein neuer code

    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    
    using namespace std;
    
    int main()
    {
        float geschw, gefahr;
    
        cout << "Geben Sie eine Geschwindigkeit (km/h) ein: \n\n";
        cin >> geschw;
        cout << "Gefahrbremsung? (j/n)" << endl;
        cin >> gefahr;
    
        if ( gefahr == "n" || gefahr == "N")
        {
         float bw = (geschw / 10) * (geschw / 10); 
        }
    
        else
        {
        float bw = ((geschw / 10) * (geschw / 10)) / 2; 
        }
    
        float rw = (geschw / 10) * 3;
        float aw = rw + bw;
    
        cout << endl;
        cout << "Ihr Reaktionsweg betraegt: " << rw << " meter" <<endl;
        cout << "Ihr Bremsweg betraegt: " << bw << " meter" << endl;
        cout << "Ihr Anhalteweg betraegt: " << aw << " meter \n\n" << endl;
        system("PAUSE");
        return 0;
    
    }
    

  • Administrator

    Mein zweiter aufgeführten Fehler hast du immer noch nicht korrigiert. Oder hast den Post gar nicht gelesen?

    Dravere schrieb:

    Fehler:
    1. Keine genaue Fehlerbeschreibung geliefert.
    2. if ( gefahr == "n" || gefahr == "N")
    "x" liefert ein char const*
    'x' liefert ein char
    if ( gefahr == 'n' || gefahr == 'N')

    Warnungen:
    1. Unnötig viele Headers inkludiert.
    2. C++ C-Headers inkludiert. Man sollte wenn möglich nicht C und C++ mixen.
    3. getch() ist nicht Platform unabhängig, genauso wie <conio.h>
    4. Es wäre eine Überlegung wert, ob man nicht besser mit float oder double rechnen möchte.
    5. Pass auf mit der Verwendung von using namespace std; .

    Grüssli

    Und du scheinst noch nachholbedarf in Sachen Scope zu haben! Naja, ich schreib dir nochmals ein paar Hinweise hin.

    if ( gefahr == "n" || gefahr == "N") // "" gibt const char*, '' gibt char
        { 
         float bw = (geschw / 10) * (geschw / 10); // bw wird erstellt, Wert zugewiesen.
        }  // bw wird zerstört.
    
        else 
        { 
        float bw = ((geschw / 10) * (geschw / 10)) / 2; // bw wird erstellt, Wert zugewiesen.
        } // bw wird zerstört.
    
        float rw = (geschw / 10) * 3; 
        float aw = rw + bw; // bw ist gar nicht vorhanden!
    

    Grüssli



  • ahh super jetzt hab ichs gecheckt xD...danke für die hilfe

    PS: gibt es Code::Blocks auch auf deutsch?


Anmelden zum Antworten