Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

1

06.11.2005, 12:00

.exe-Dateien-Problem

Hallo, ich habe ein Problem und hoffe auf eine konstruktive Kritik von euch :)


Wenn ich in meiner IDE Dateien schreibe und laufen lasse funktionieren sie immer wie es sein muss, aber wenn ich sie außerhalb der IDE laufen lasse schließt sich das Windows-Consolenfenster gleich!

Es sei denn ich fordere den Benutzer auf, etwas einzugeben:

C-/C++-Quelltext

1
2
3
4
// ----- mein Programm -----

// ... 

int x;
cin >> x;

dann wartet das Programm, bis was eingegeben wurde und schließt das Fenster dann auch sofort.

Allerdings müssen exe-Dateien doch selbstständig funktionieren - was mach ich also falsch!?

PS: Den Begriff Commando(zeilen)-Datei hab ich auch schon mal gehört, konnte damit aber nichts anfangen :(

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

2

06.11.2005, 13:47

Das ist unter Windows ganz normal.
Deswegen setzt man auch normalerweise noch ein cin.get() ans Ende der main. Dann wird auf eine Eingabe gewartet.

Ciao

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

06.11.2005, 14:00

dein programm schließt sich vermutlich, weil die main funktion returned.
damit wird auch automatisch das konsolenfenster deiner anwendung geschlossen.
cin z.b. wartet auf eine benutzereingabe, was dazu führt, dass main erst returned, wenn der benutzer eine taste drückt...

4

07.11.2005, 17:27

Kann es sein, dass Du DEV C++ benutzt?
Dann musst nämlich noch system ("PAUSE") einfügen.
Wenn der Knecht vom Dache pieselt,
denkt der Bauer: Oh, es rieselt

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

5

07.11.2005, 17:44

pantha... ich befürchte du hast dir soeben den Zorn einiger Comunity Mitglieder auf dich gezogen...
Also system() soltte man definitiv NICHT benutzen, die Gründe wurden schon mehrmals genannt...
einfach ein cin.get() vor return o und schon beendet sich das Prog nicht mehr
:ohoh:
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

6

07.11.2005, 19:03

Des is mir schon klar, aber kann ja auch sein, dass er ein Prog machen will, das nicht auf die Eingabe des Benutzers wartet sondern andersweitig beendet wird. War eher nur ein allgemeiner Hinweis.
Wenn der Knecht vom Dache pieselt,
denkt der Bauer: Oh, es rieselt

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

7

07.11.2005, 19:16

ok aber wie soll er das prog beenden wenn er nicht auf eine benutzereingabe warten will? Entweder er will das der Benutzer was eingibt, oder er nimmt cin.get() (oder was anderes z.B. getch()), damit sich das Prog nicht automatisch beendet -> Im Endeffekt ist das alles eine Benutzereingabe, oder gibt es da noch andere Möglichkeiten ? ???
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

07.11.2005, 20:24

1. getch() in C
2. cin.get() in C++
3. irgendeine eingabe mit scanf oder cin
4. kein system(...)

Anonymous

unregistriert

9

07.11.2005, 21:02

koschka
getch(); NIE und NIMMER!

Nur folgendes ist gültig:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
#include <iostream>

int main (void)
{
    std::cin.get();

    return 0;
}


Aber richtig macht man es wie folgt:
1. WINDOWS-TASTE + R
2. cmd eingeben und auf okay
3. in das Projektverzeichnis navigieren und exe starten ;)

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

10

07.11.2005, 22:40

Natürlich ist getch() ggut, besonders wenn man in C codet, es soll immer noch solche geben ^^

Werbeanzeige