Seite 1 von 1

Moin erstmal, und gleich eine Frage

Verfasst: 07.07.2011, 22:48
von Raptor
Moin erstmal ich habe vor kurzem angefangen mich mit C++ außeinander zu setzen.
Ich habe das Buch "C++ für Spieleprogrammierer", und wollte damit anfangen mich damit zu beschäftigen, Ich habe es zuerst mit der beigelegten Software "Microsoft Visual Studio 2006" versucht. Mit einem 32bit Betriebssystem hat es noch funktioniert das Programm zu kompilieren und zum ausführen zu bringen(War nur ne Textausgabe über die konsole aber trotzdem;D). Jetzt habe ich jedoch ein 64bit System, und es funktioniert nicht mehr weder mit Visual 2006 oder mit Visual Studio 2010. Ich bekomme immer wieder Probleme mit der Ausführung des Programms. Kompilieren lässt es sich aber wenn ich es öffne ist für ein Bruchteil einer Sekunde offen, aber dann schließt es sich sofort wieder.
Bitte um Hilfe

Re: Moin erstmal, und gleich eine Frage

Verfasst: 07.07.2011, 23:22
von kristof
Versuche mal ans Ende deines Programms ein cin.get() zu schreiben. Dann wartet das Programm darauf, dass der Benutzer eine Taste drückt.

Re: Moin erstmal, und gleich eine Frage

Verfasst: 08.07.2011, 21:45
von Durza
Es liegt daran, dass nach der textausgabe nichts mehr programmiert ist. Das Programm schliesst sich, weil es denkt, dass es seine Arbeit getan hat.
Du kannst auch system ("Pause"); nach der Textausgabe anfügen.
Durza

Re: Moin erstmal, und gleich eine Frage

Verfasst: 11.07.2011, 13:46
von IlikeMyLife
ob du cin.get() oder system ("Pause"); verwendest wird richtig schön in folgendem ausdiskutiert ;-)

http://www.computerhilfen.de/hilfen-14-41150-0.html

Re: Moin erstmal, und gleich eine Frage

Verfasst: 11.07.2011, 14:11
von Aramis
Mja, ein system("pause") bedeutet einen fork/neuen Prozess und ist somit maximal ineffizient – insbesondere wenn man bedenkt, dass 'pause' irgendwo in den Untiefen des Windows Batch-Prozessors als cin.get() (oder meinetwegen das C-Aequivalent dazu) implementiert ist :-)

Die pragmatische Loesung besteht aber darin, dein Programm aus einer bereits offenen Kommandozeile heraus zu starten. Also Kommandozeile oeffnen, Programm ausfuehren, Text bleibt stehen.

Notfalls ein Batchfile (.bat) im Verzeichnis

Code: Alles auswählen

myapp.exe
pause
.. du siehst, es gibt hier verschiedene Moeglichkeiten. Ich finde die zuletzt genannten bedeutend schoener, da der Zwang zu einem zusaetzlichen Tastendruck am Ende evtl. die Integration deines Programms in komplexere Ablaeufe erschweren koennte (beispielsweise ein Batchskript, das nicht-interaktiv ablaufen soll).