Codes funktionieren nicht



  • Hallo alle^^

    Ich habe mir vorgenommen C++ zu lernen und mir dazu jetzt auch schon zwei Tutorials angesehen, jedoch kam ich bei beiden nicht gerade weit.

    Begonnen habe ich mit dem Tutorial von Toni Schornböck (http://tutorial.schornboeck.net), doch ab dem Abschnitt Eingabe (sehr weit am Anfang) funktionerte es nicht mehr. Dort sollte man ein Programm schreiben (mit Hilfe einer Vorlage), in welchem man einfach drei Zahlen eingibt und die in verschiedener Reihenfolge wieder ausgegeben werden sollten. Ich glaube theoretisch (nach dem Tutorial) habe ich die Aufgabe lösen können und es ist vom Prinzip auch genauso wie die Lösung, jedoch bricht das Programm nach der Eingabe der Zahlen einfach ab. Der Code soll wie folgt aussehen:
    #include<iostream>
    using namespace std;

    int main()
    {
    int zahl1;
    int zahl2;
    int zahl3;

    cout<<"Bitte eine Zahl eingeben\n";
    cin>>zahl1;
    cout<<"Bitte noch eine Zahl eingeben\n";
    cin>>zahl2;
    cout<<"Bitte eine letzte Zahl eingeben\n";
    cin>>zahl3;
    cout<<"Die Ausgabe lautet\n";
    cout<<zahl1<<" "<<zahl3<<" "<<zahl2<<"\n";
    }

    Diesen Code habe ich dann auch noch einmal kopiert doch das Programm stürzt trotzdem ab. Woran liegt das?

    Erst habe ich gedacht, das Tutorial wäre vielleicht ein wenig falsch, also hab ich ein neues gesucht und eines gefunden: Volkards C++ Kurs

    Den habe ich mir angeschaut, aber schon gleich in Lektion 3 kam ich nicht weiter, da es bei dem kurzen Code:
    #include <iostream.h>
    void main()
    {
    // Dies ist das Hello-World-Programm
    cout<<"Hello, world!"<<endl;
    };

    bereits viele Fehlermeldungen gab.

    Ich habe mir gedacht, dass die Tutorials vllt schon älter sind und C++ sich verändert hat, jedoch habe ich kein wirklich aktuelleres Tutorial gefunden.
    Ich hoffe jemand kann mir helfen, wie ich diese Probleme beseitigen und doch C++ lernen kann 🙂

    MfG
    fr33ze



  • shade of mines tutorial ist etwas veraltet

    zum einen heisst es #include <iostream> (statt iostream.h)
    dann brauchst du nochd en so genannten namespace

    entweder am anfang
    using namespace std;
    schreiben oder für jedes cin und cout
    std::cin und std::cout
    schreiben



  • fr33ze schrieb:

    Den habe ich mir angeschaut, aber schon gleich in Lektion 3 kam ich nicht weiter, da es bei dem kurzen Code:
    #include <iostream.h>
    void main()
    {
    // Dies ist das Hello-World-Programm
    cout<<"Hello, world!"<<endl;
    };

    bereits viele Fehlermeldungen gab.

    Der Code kann auch nicht kompilieren, weil es in C++ kein iostream**.h** gibt und du bei cout und endl jeweils den Namespace std vergessen hast.

    Darüber hinaus hat die main-Funktion auch IMMER den Rückgabetyp int, NIEMALS void oder irgendwas anderes.

    Richtig sieht das Programm also so aus:

    #include <iostream>
    
    int main()
    {
       std::cout << "Hello, world!" << std::endl;
       return 0;
    }
    


  • Zum ersten Problem:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-151578.html

    Die Antwort auf Frage 2 sollte dir helfen.



  • erstmal danke für die schnellen Antworten 🙂

    Ich hab mir jetzt mal die zweite der "meistgestellten Fragen" angeguckt und die Lösung mit der "wait()" Methode ausprobiert. Aber irgendwie schließt sich die Konsole trotzdem einfach nach der Eingabe der Zahlen.

    Kann es sein, dass etwas in meinem Code falsch ist und es deswegen nicht ausgeführt werden kann?

    Also im Moment will ich versuchen den Code zum funktionieren zu bringen:

    #include<iostream>
        using namespace std;
    
        int main()
        {
          int zahl1;
          int zahl2;
    
          cout<<"Bitte eine Zahl eingeben\n";
          cin>>zahl1;
          cout<<"Bitte noch eine Zahl eingeben\n";
          cin>>zahl2;
          cout<<"Zahl 2: "<<zahl2<<"\n";
          cout<<"Zahl 1: "<<zahl1<<"\n";
        }
    

    habe in den eben auch schon die wait Methode eingebaut, funktioniert aber trotzdem nicht:

    #include <iostream>
    
    using namespace std;
    
    void wait ()
    {
        std::cin.clear();
        std::cin.ignore(std::cin.rdbuf()->in_avail());
        std::cin.get();
    } 
    int main()
    {
    
          int zahl1;
          int zahl2;
    
          cout<<"Bitte eine Zahl eingeben\n";
          cin>>zahl1;
          cout<<"Bitte noch eine Zahl eingeben\n";
          cin>>zahl2;
          cout<<"Zahl 2: "<<zahl2<<"\n";
          cout<<"Zahl 1: "<<zahl1<<"\n";
    
        wait();
    
    }
    

    Was ich jetzt auch gesehen habe: kurz bevor die Konsole sich von alleine schließt sehe ich auch noch (zumindest glaube ich das zu sehen, ist eben nur sehr kurz da):

    Zahl 2: 2
    Zahl 1: 1

    aber dann ist auch sofort wieder weg. Also die Konsole.


Anmelden zum Antworten