Fehler beim kompilieren



  • Ich habs eingefügt aber er sagt dann das zeile 8 und 17 und 18 uncleared sind.



  • Poste mal den genauen Fehler...
    Heißt es eigentlich Mittwoch oder Mitwoch? Das scheint dein Compiler zu ignorieren... 😃



  • In function int main()
    Zeile 7 cin uncleared (first use function)
    [Each uncleared idebtifer is reported only once for each function it appears in]
    Zeile 8 cout uncleared (first use function)
    Zeile 17 endl uncleared (first use function)

    Ich schicke zur Sicherheit nochmal mein überarbeitetes skript

    #include <iostream>

    int Wochentag;

    int main()
    {
    cout << "wählen Sie einen Wochentag indem Sie eine Zahl eingeben:\n";
    cout << "1. Montag\n";
    cout << "2. Dienstag\n";
    cout << "3. Mittwoch\n";
    cout << "4. Donnerstag\n";
    cout << "5. Freitag\n";
    cout << "6. Samstag\n";
    cout << "7. Sonntag\n";
    cout << '\n';
    cin >> Wochentag;
    cout << '\n' << endl;

    if(Wochentag == 1)
    {
    cout << "Montag\n";
    cout << '\n';
    cout << "1. Einkaufen\n";
    cout << "2. Werkstadt\n";
    cout << '\n'<< endl;
    }
    else if(Wochentag == 2)
    {
    cout << "Dienstag\n";
    cout << '\n';
    cout << "1. Arzttermin um 14:00 Uhr\n";
    cout << '\n' << endl;
    }
    else if(Wochentag == 3)
    {
    cout << "Mittwoch\n";
    cout << '\n';
    cout << "1. keine Termine hinterleg";
    cout << '\n' << endl;
    }
    else if(Wochentag == 4)
    {
    cout << "Donnerstag\n";
    cout << '\n';
    cout << "1. Waesche waschen\n";
    cout << '\n'<< endl;
    }
    else if(Wochentag == 5)
    {
    cout << "Freitag\n";
    cout << '\n';
    cout << "1. Steffi Geburtstag\n";
    cout << '\n'<< endl;
    }
    else if(Wochentag == 6)
    {
    cout << "Samstag\n";
    cout << '\n';
    cout << "Keine Termine hinterlegt\n";
    cout << '\n'<< endl;
    }
    else if(Wochentag == 7)
    {
    cout << "Sonntag\n";
    cout << '\n';
    cout << "1. Oma besuchen\n";
    cout << '\n' << endl;
    }
    else
    {
    cout << "Fehler keine gueltige Zahl\n";
    cout << '\n' << endl;
    }

    return 0;}



  • #include <iostream> 
    //Die Objekte cout und cin befinden sich im Namensraum std.
    //Durch die Anweisung using namespace werden alle Namen in den globalen Namensraum geladen,
    //so dass kein prefix (in dem Fall std::) benötigt wird.
    using namespace std;
    
    int main()
    {
        int Wochentag;
        // ...
    }
    


  • Ich habe dank deiner hilfe die datei kompilieren können aber wenn man im eingabefenster etwas eingiebt schließt er sofort das fenster wieder.



  • Ein Quelltext muss kein Skript sein. Ein C++ Quelltext ist z. Bsp. kein Skript, da C++ keine Skriptsprache ist.



  • Das fenster schließt sich immer wenn ich eine zahl oder ne buchstaben eingebe, und dann enter drücke.



  • Schreibe vorerst ans Ende deiner main-Funktion system("PAUSE");

    int main
    {
    //...
    //return hier wegnehmen
    system("PAUSE");
    return 0; //kann laut Standard auch weggelassen werden
    


  • Wenn du unter Windows bist, sollte das funktionieren, aber lies bitte hier, wie es richtig geht, da die Funktion system "böse" ist.



  • Ich kann es jetzt ausführen, das programm und auch was eingeben, ist es aber richtig, dass nachdem er einen wochentag angezeigt hat, und man ne taste drückt, wie er es das anbietet das fenster schließt? 😕



  • am besten verwende getchar()

    // h a u p t p r o g r a m m
    int main()
    {
        // [ ... ]
    
        getchar();
        return 0;
    } // main()
    


  • Was soll den sonst passieren?



  • int main
    {
    //...
    //return hier wegnehmen
    system("PAUSE");
    return 0; //kann laut Standard auch weggelassen werden
    

    Also das sollte man lassen 😛 Warum man std::system("pause") meiden sollte.
    Dabei mal ganz außer acht gelassen, das die Funktion aus dem Header <cstdlib> im Namensraum std liegt.

    // h a u p t p r o g r a m m
    int main()
    {
        // [ ... ]
    
        getchar();
        return 0;
    } // main()
    

    Wie man es so macht, dass es dann auch klappt, steht im F.A.Q.: http://c-plusplus.net/forum/viewtopic-var-t-is-111042.html

    So das non+ultra ist das aber auch nicht. Ist nunmal C und kein C++.

    namespace util 
    {
        std::istream& clstream(std::istream& in) 
        { in.clear(); in.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); return in; }
        void close_wait(std::string const& prompt = "Bitte drücken Sie eine Taste um das Programm zu beenden") 
        { std::cout << prompt << std::endl; clstream(std::cin).get(); }
    }
    
    int main()
    {
       std::cout << "Das ist mein Programm in Version 1.0!" << std::endl;
       util::close_wait();
    }
    

    hat doch sogar richtig Stil!


Anmelden zum Antworten