Archiv verlassen und diese Seite im Standarddesign anzeigen : Noob-Problem... (Compiler)
Also, ich verstehs wenn ihr mich aufs übelste als Noob beschimpft, bin ja auch noch einer^^.
Also ich habe heute Angefangen C++ lernen zu wollen, und lese dazu "C++ in 21 Tagen" oderso... naja auf jeden Fall hab ich mir folgenden Compiler (http://www.bloodshed.net/devcpp.html) geholt. Und dann hab ich probiert das "Program" "Hallo Welt" zu erstellen. Ich hab folgendes als Quelltext eingegeben:
#include <iostream.h>
int main()
{
cout << "Hallo Welt.\n";
return 0;
}
Jo und dann hab ich auf Compilieren und Ausführen geklickt, ein Fenster (das Program) wurde geöffnet, allerdings nur 1 sec oder weniger, woran liegt das?
Das liegt daran, dass das Fenster, in dem das Programm ausgeführt wird, nach der Ausführung wieder geschlossen wird. Du kannst z.B. system(pause); oder eine Eingabe (müsste mit getc() gehen, ich bin mir aber nicht sicher, ob das in C++ Standard ist oder man da die C-Header braucht) anhängen, damit das Fenster offen bleibt, bis man Enter drückt.
Und nur so nebenbei, das ist so ziemlich die am häufigsten gestellte Frage in diesem Forum, mach doch bitte Gebrauch von der Suchfunktion (damit findest du vielleicht noch ein paar mehr Lösungen).
Das liegt daran, dass das Fenster, in dem das Programm ausgeführt wird, nach der Ausführung wieder geschlossen wird. Du kannst z.B. system(pause); oder eine Eingabe (müsste mit getc() gehen, ich bin mir aber nicht sicher, ob das in C++ Standard ist oder man da die C-Header braucht) anhängen, damit das Fenster offen bleibt, bis man Enter drückt.
Und nur so nebenbei, das ist so ziemlich die am häufigsten gestellte Frage in diesem Forum, mach doch bitte Gebrauch von der Suchfunktion (damit findest du vielleicht noch ein paar mehr Lösungen).
thx jezz klappts...
ja aber ich wusste nicht was ich ich in der Suche eingeben sollte.
1)
Das System("pause"); oder das getch() ist ganz bloeder Stil.
Am besten startest du dein Programm per Hand von der Commandline.
Du machst mit Start->Ausfuehren->cmd eine DOS-Box auf, wechselst mit dem Befehl cd in das Verzeichnis, wo dein Programm liegt, und startest es, z.b. mit meinprogramm.exe
2)
Dein Quelltext haellt sich nicht an die vorgegebenen C++ Konventionen.
Richtig muss es so heissen:
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
cout << "Hallo Welt." << endl;
return 0;
}
3)
Dev-C++ ist KEIN Compiler, sondern eine IDE, also mehr oder weniger ein erweiterter Editor. Der Compiler, den du verwendest ist der gcc unter mingw. Falls du also irgendwo mal hilfe zu deinem Compiler suchst, schreib, das du mingw/gcc unter Dev-C++ verwendest. Viele reagieren da sehr empfindlich, wenn jemand das falsch formuliert.
Crash-Override
05.04.2006, 20:12
1)
Das System("pause"); oder das getch() ist ganz bloeder Stil.
Am besten startest du dein Programm per Hand von der Commandline.
Du machst mit Start->Ausfuehren->cmd eine DOS-Box auf, wechselst mit dem Befehl cd in das Verzeichnis, wo dein Programm liegt, und startest es, z.b. mit meinprogramm.exe
Ich würde mir n' bat (*.bat) dafür machen, es in den PATH legen (z.B. C:\Windows\) mit etwa diesem inahlt
%1
pause
und dann unter Start | Ausführen "[name der Datei] [Pfad zur Exe]", das ist relativ einfach und praktisch, da kein Konsolen-Fenster bleibt und es dennoch geht.
Da ist es aber einfacher, die Eingabeaufforderung zu öffnen, finde ich. Vor allem, wenn man das Programm häufiger starten will. Noch bequemer ist natürlich die Methode mit system("pause"); bzw. getch();. Und auch wenn es von etlichen Hardlinern nicht geschätzt wird, kann man es doch ohne große Bedenken nutzen. Aber sowas muss natürlich jeder für sich entscheiden.
Btw, viel Spaß noch beim C++-lernen, Threadstarter.
freundliche Grüße, Rolus
Jesus_666
07.04.2006, 00:06
Noch bequemer ist natürlich die Methode mit system("pause"); bzw. getch();. Und auch wenn es von etlichen Hardlinern nicht geschätzt wird, kann man es doch ohne große Bedenken nutzen.
Kommt drauf an. Wenn man nur ein bißchen Rumgespiele macht ist es egal, weil der Code ohnehin keinen Wert hat und niemand ihn je sehen wird.
Sobald das Programm aber irgendeinen tatsächlichen Nutzwert hat (also die Chane, daß jemand sonst es benutzt größer als null ist) sollte man den Kram lassen, weil er den Erwartungen des Users zuwiderläuft. Die Verwender von Kommandozeilenprogrammen erwarten, daß das Programm nur dann auf Eingaben wartet, wenn es tatsächlich welche braucht.
Das ist natürlich besonders unter Linux so, wo man sich in Shellskripten und komplizierten Kommandos darauf verläßt, daß ein Programm sich beendet, wenn es fertig ist. Aber auch unter Windows gibt es Leute, die mit Batchdateien und WSH-Skripten ähnliche Dinge anstellen.
Fazit: Wenn eine Chance besteht, daß jemand das Programm tatsächlich benutzt sollte man am Ende nicht sinnlos auf Input warten. Bei Fingerübungen macht es nichts. Wenn man bei einem echten Programm eine Wartezeit möchte würde ich dazu rten, einfach die oben gezeigte Batchdatei zu modifizieren und das Programm darüber zu starten. (Sprich: Du schreibst den Dateinamen des Programms in die erste Zeile und packst die Batchdatei dann in den gleichen Ordner.)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.