Moin erstmal, und gleich eine Frage

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Raptor
Beiträge: 1
Registriert: 07.07.2011, 22:38

Moin erstmal, und gleich eine Frage

Beitrag 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
kristof
Beiträge: 92
Registriert: 19.01.2009, 13:05

Re: Moin erstmal, und gleich eine Frage

Beitrag 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.
Durza
Beiträge: 21
Registriert: 13.08.2008, 20:31
Alter Benutzername: Durza
Wohnort: Schweiz

Re: Moin erstmal, und gleich eine Frage

Beitrag 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
Ich kann mir eine Welt vorstellen ohne Krieg, eine Welt ohne Hass. Und ich kann mir vorstellen, wie wir diese Welt angreifen, weil die Typen es niemals erwarten würden.
IlikeMyLife
Establishment
Beiträge: 212
Registriert: 08.05.2011, 09:59
Benutzertext: Feel Free

Re: Moin erstmal, und gleich eine Frage

Beitrag 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
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Moin erstmal, und gleich eine Frage

Beitrag 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).
Antworten