Dev - Cpp kann nicht Quellcode ausführen



  • Jep, es klappt, aber nur bei diesem Programm:

    #include <iostream> 
    #include <cstdlib> 
    
    int main() 
    { std::cout << "Hallo Welt!" << std::endl; 
    std::system( "PAUSE" ); }
    

    meiner Funktioniert nicht. Dort kommt, dass er cout und endl nicht kennt.



  • jep.
    deswegen haben wir auch ein std:: davor, den cout und endl sind im namespace
    std definiert.



  • Und was bedeutet dann

    #include <cstdlib>
    

    ?
    Warum wird das benötigt.
    Und was bewirkt

    std::system( "PAUSE" );
    

    ?

    Ohne die beiden gehts ja nicht.
    Freue mich auf eine Antwort



  • Ach jetzt hab ichs:

    std::system("Pause")
    

    steht dafür, dass der Compiler das Programm nicht sofort beendet, ohne dass der User es gesehen hat, oder?

    und

    #include <cstdlib>
    

    wird dann zu count, cin und endl definiert, weil man im Quelltext ja std:: davorhängen muss.

    Warum ist das nötig?



  • ..



  • bane4 schrieb:

    Ach jetzt hab ichs:

    std::system("Pause")
    

    steht dafür, dass der Compiler das Programm nicht sofort beendet, ohne dass der User es gesehen hat, oder?

    Das führt einfach den Befehl "PAUSE" aus:

    Mache ein CMD-Window auf (WIN+R , cmd.exe), und gib PAUSE ein... 💡



  • Ja, hab ich...
    Gibt es da irgendwo eine Liste von solchen cmd Eingaben?



  • dos-befehle 😃 du bist noch nicht sehr alt oder 🤡

    start->ausführen->cmd.exe
    "help" eingeben 😉



  • ..



  • bane4 schrieb:

    Jep, es klappt, aber nur bei diesem Programm:

    #include <iostream> 
    #include <cstdlib> 
    
    int main() 
    { std::cout << "Hallo Welt!" << std::endl; 
    std::system( "PAUSE" ); }
    

    meiner Funktioniert nicht. Dort kommt, dass er cout und endl nicht kennt.

    Vermutlich weil iostream.h ein C header ist und der Compiler nicht findet?
    Darin werden die Funktionen cout und endl definiert und da der Compiler die headerdatei nicht findet, weiß er auch nicht was cout sein soll..

    Bei Deinem funktionierenden Beispiel hast Du kein .h 😉

    das std:: kannst Du auch umgehen indem Du nach den include Anweisungen

    using namespace std:
    

    einfügst..

    Ich hoffe das war jetzt nicht zuviel mist, ich fang selber erst an 😉

    Gruß, Peter



  • bane4 schrieb:

    #include <cstdlib>
    

    wird dann zu count, cin und endl definiert, weil man im Quelltext ja std:: davorhängen muss.

    Warum ist das nötig?

    Fast - <cstdlib> (aka <stdlib.h>) enthält (unter anderem) die system()-Funktion. cin, cout und endl holst du dir über die <iostream> (der Header <iostream.h> ist veraltet und sollte nicht mehr verwendet werden).

    PS: In den meisten Fällen brauchst du system() nicht - für die klassischen Anwendungsfälle gibt es Alternativen im ANSI-Standard (anstelle von system("pause"); beispielsweise cin.get(); ) oder in der Betriebssystem-API.


Anmelden zum Antworten