Dev - Cpp kann nicht Quellcode ausführen
-
miller_m schrieb:
weil du ihn vorher vielleich compilieren solltest
ich bin noch ein Anfänger | Wie geht das?
-
Ein Auszug aus:
http://userpage.fu-berlin.de/~ram/pub/pub_kfd8tk88g/anleitung_devcpp_deEingeben und Starten eines Programms
Um ein neues Programm einzugeben wird im Menü "File" der Eintrag "New Source file" angewählt. Es erscheint daraufhin ein Editorfenster mit einem kleinen Programmuster.
In das Editorfenster wird nun der Quelltext eingegeben. Für die ersten Übungen kann beispielsweise der folgende Quelltext verwendet werden.
hallo.cpp
#include <iostream>
#include <cstdlib>int main()
{ std::cout << "Hallo Welt!" << std::endl;
std::system( "PAUSE" ); }Zum Übersetzen und Starten des Programms wird Strg-F10 gewählt.
Falls das Programm zuvor noch nicht gespeichert wurde, dann muß es nun gespeichert werden. Hierbei ist darauf zu achten, nicht irgendwo hin, sondern in das zuvor angelegte Benutzerverzeichnis zu speichern.
Als Dateiname wird der Text "hallo" eingegeben. Die Namenserweiterung ".cpp" wird automatisch hinzugefügt, wenn im Dialog unten der passende Typ, also "C++ source file (*.cpp)" angewählt ist. Der Dateiname wird dann mit der Schaltfläche "Speichern" bestätigt.
Nachdem das Programm seine Ausgabe in der Konsole angezeigt hat, wird die Konsole solange aufrechterhalten bis die Leertaste der Konsole gedrückt wird. Dies wird durch die Anweisung "std::system( "PAUSE" );" im Quelltext des Programms erreicht. Diese Anweisung muß jedem Programm, das sich so verhalten soll, noch am Ende hinzugefügt werden. Das macht es auch nötig, daß am Anfang des Programmes die Direktive "#include <cstdlib>" vorkommt.
Der Compiler zeigt immer noch den Dialog "Compilation completed" an, der ebenfalls durch die Leertaste oder Aktivieren der Schaltfläche "Continue" geschlossen werden kann.
Falls ein anderes Programm eingegeben werden soll, so kann das aktuelle Programm durch Anwahl des Eintrags "Close" im Menü "File" geschlossen werden.
-
klappt immer noch nicht...
ich habs bei http://prdownloads.sourceforge.net/dev-cpp/devcpp4980.exe?use_mirror=switch gedownloadet; vielleicht liegt es daran.
-
drück doch mal F9
-
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 bewirktstd::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");
beispielsweisecin.get();
) oder in der Betriebssystem-API.