Hilfe ganz am Anfang: Programm wird nicht ausgeführt, aber ohne Fehlermeldung kompiliert



  • Hi,

    ich bin noch ganz am Anfang beim Lernen von C++, habe ein Buch, das mir von den Erklärungen gut gefällt, habe jetzt aber folgendes Problem:

    Ich will einfach mal irgendein Programm selber schreiben und zum laufen bringen, und wenn ich jetzt nicht vollends irre, sollte folgendes doch Problemlos laufen:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {   int a;
        cout << "tip mal ne zahl" << endl;
        cin >> a;
        cout << "du hast eingegeben" << a << endl;
        cin.get();
    }
    

    Wenn ich das aber kompiliere und ausführe, passiert nichts, es wird zwar erfolgreich kompiliert aber nicht ausgeführt, weder direkt aus der Entwicklungsumgebung, durch Doppelklick auf die exe noch durch aufrufen über eine batch datei. Diese wird ausgeführt aber eben nur was in ihr steht, von der ee keine Spur. Auch bei Hello World ist es schon gescheitert.
    Ich habe auch schon cin.get am Schluss weggelassen, das ist ja eigentlich nicht nötig, wenn ich es mit einer batch-Datei aufrufe und return(0) angehängt.

    Ich benutze wxDev-C++ als Entwicklungsumgebung

    Jetzt meine Frage, die ja schon zu erwarten war: Was mach ich falsch?


  • Mod

    Was genau meinst du mit "Wird nicht ausgeführt"?

    Dein Programm an sich ist korrekt.



  • Also, bei mir funktioniert es mit dem DevC++ Compiler einwandfrei.
    Nun...

    1.) Was für einen Projekttyp gebrauchst du, es sollte eine "Console Application" sein.
    2.) Hast du schon einmal versucht den Compiler neu zu installieren.
    3.) DevC++ ist veraltet, benutze doch am Besten Visual C++ oder aber Code::Blocks.



  • 1. Danke für die schnellen Antworten

    2. Mit "wird nicht ausgeführt" meine ich, dass einfach nichts passiert, nicht mal ein flackern.

    3. Den Compiler hab ich gerade erst runtergeladen und installiert, es handelt sich um wxDev-C++, das wird noch entwickelt im gegensatz zu Dev-C++, also denke ich dass es daran nicht liegen sollte.

    4. Ich bin weiter als vorher, ich glaub weil ich Console Application gewählt habe.

    Also es startet, wenn ich in wxDev-C++ auf "kompilieren und ausführen" klicke, allerdings kommt die zweite Ausgabe nur wenn ich es über batch starte, trotz cin.get() ist das normal?

    Und noch interessehalber: Was genau ändert das, wenn ich die Console Application auswähle? Der Quellcode bleibt ja gleich.



  • Habe soeben herausgefunden, dass "system("PAUSE");" das macht, was ich mit cin.get(); erreichen wollte.

    Noch mal Danke



  • Console Application heißt, dass die Ausgabe oder das Programm in der Konsole, das heißt in einer cmd.exe Datei ausgeführt.

    Ja, system("PAUSE"); wartet, wie auch cin.get(); auf eine Benutzerangabe. Was du benutzt ist letzendlich egal, doch es heißt immer, dass system("PAUSE"); nicht so gut wäre (wieso, dass musst du die anderen Fragen 😉 ). Ich selber gebrauche meist while Schleifen

    Edit: Ach ja, nur aus Interesse. Womit lernst du C++? Mit einem Online Tutorial oder mit einem Buch?



  • also cin.get() wartet bei mir aber offensichtlich nicht. Naja, solang es sonst funktioniert.

    Ich habe aus der Bibliothek GoTo C++ Programmierung von André Willms http://www.amazon.de/Programmierung-Das-Lern-Nachschlagewerk-Programmierer/dp/382731495X allerdings eine ziemlich alte Auflage von 1999. Aber so viel dürfte sich da ja nicht geändert haben, oder?



  • Nja, der neuere Standard sollte ja schon abgedeckt sein, also sollte dies in Ordnung gehen 😉

    Sind denn jetzt alle deine Fragen beantwortet worden?



  • Ja, jetzt sind alle meine Fragen solange beantwortet, bis neue aufkommen... mal schauen wie lang das auf sich warten lässt 😉


Anmelden zum Antworten