JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=d482953cf693263138b3756ff0f1bb81Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

exe datei funktioniert nicht richtig

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nixkoenner
Mini JLI'ler


Alter: 31
Anmeldedatum: 15.02.2007
Beiträge: 36

Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 16:50    Titel: exe datei funktioniert nicht richtig Antworten mit Zitat

Hey ich hab ein problem

wenn ich ein projekt speichere und im ordner die exe datei öffne, schlißt sich das programm beim ersten drücken der enter-taste. Auch wenn ich cin verwende.

wenn ich den quellcode mit Code::Blocks öffne funktioniert es tadellos. Ich hoffe ihr könnt mir helfen, damit meine Programme auch andere Leute auf z.B. usb-sticks komplett benutzen können

danke im vorraus Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Otscho
Super JLI'ler


Alter: 35
Anmeldedatum: 31.08.2006
Beiträge: 338
Wohnort: Gummibären-Gasse
Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 17:20    Titel: Antworten mit Zitat

Das Programm schließt sofort obwohl du ein cin eingebaut hast ?
Hm komisch . . .
Vielleicht hilft dir der Thread http://www.jliforum.de/board/viewtopic.php?t=917
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nixkoenner
Mini JLI'ler


Alter: 31
Anmeldedatum: 15.02.2007
Beiträge: 36

Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 17:35    Titel: Antworten mit Zitat

ja es schließt sobald ich enter drücke. Wenn ich bei der cin eingabe im programm angekommen bin, kann ich Zahlen und Buchstabe eingeben.
Aber sobald ich enter drücke (manchmal sehe ich den text der kommen sollte kurz aufflackern) schließt das programm. Mad Mad Mad

ich kann mir das auch nicht erklärend und der thread hilft mir leider nicht wirklich weiter.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 17:48    Titel: Antworten mit Zitat

Dann zeig uns mal Code, ohne den können wir nix sagen Wink

Hast du nach dem ersten cin noch was, das eine Eingabe abfangen könnte?
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nixkoenner
Mini JLI'ler


Alter: 31
Anmeldedatum: 15.02.2007
Beiträge: 36

Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 17:49    Titel: Antworten mit Zitat

hab jetzt trotzdem mal system("pause")

probiert und nachdem ich eine "beliebige taste" drücke schließt sich das programm.

hier der Quellcode:

Code:

// test

#include <iostream>

using namespace std;

int main(void)
{
    cout << "test test test test " << '\n';

    system("pause");

    cout << "test test test test " << '\n';
}

es ist also der erste befehl, den das system hingegennimmt.

das erklärt aber nicht, warum es funktioniert wenn ich es über code::blocks öffne, und nicht wenn ich die exe datei öffne.

Das Problem ist, das es ja bei jedem Programm ist das auf eine Reaktion wartet.
Aber hier mal ein ganz einfaches bei dem es auch nicht funktioniert:

Code:

// Programm zur Berechnung der Kreisfläche

#include <iostream>

int RADIUS = 0;
const float PI = 3.14159f;

using namespace std;

int main(void)
{
    cout << "Berechnung der Kreisflaeche\n ";

    cout << "Geben Sie den gewuenschten Kreisraduius ein: ";

    cin >> RADIUS;

    cout << "Der Kreis hat eine Flaeche von " << PI * RADIUS * RADIUS << '\n';
}


hoff das hilft euch was rauszufinden
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 18:06    Titel: Antworten mit Zitat

Nächstes Mal bitte den edit-Button nutzen, den du an jedem deiner Posts rechts oben findest. Zweimal posten ist nicht nötig Wink

Zitat:
das erklärt aber nicht, warum es funktioniert wenn ich es über code::blocks öffne, und nicht wenn ich die exe datei öffne.

Die Erklärung ist folgende:
Visual Studio wie offenbar auch Code::blocks haben hier für den Programmierer eine Bequemlichkeit eingefügt. Führt er das Programm aus der IDE aus, so wird diese die Abfrage automatisch an den Schluss setzen, damit alle Ausgaben noch sichtbar bleiben. Führst du das aus dem Explorer aus, ist diese Abfrage eben nicht mehr dabei.
Wenn du die Anwendung immer aus dem Explorer ausführen willst, kannst du eine zusätzliche Abfrage am Ende einbauen(wie im genannten Thread beschrieben).
Bei manchen Konsolenanwendungen ist sowas nicht erwünscht, da man sie z.B. aus der bereits geöffneten Konsole(z.B. MS-Dos-Eingabeaufforderung) startet. Dann wäre eine zusätzliche Abfrage sinnlos, da die Konsole hierbei sowieso offen bleibt.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nixkoenner
Mini JLI'ler


Alter: 31
Anmeldedatum: 15.02.2007
Beiträge: 36

Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 18:21    Titel: Antworten mit Zitat

ok danke. so funktionierts:

Code:

#include <iostream>

int RADIUS = 0;
int ENDE   = 0;
const float PI = 3.14159f;

using namespace std;

int main(void)
{
    cout << "Bitte geben Sie den Kreisradius ein" << '\n';

    cin >> RADIUS;

    cout << "Die Flaeche des Kreises betraegt" << PI * RADIUS * RADIUS << '\n';

    cout << "Bitte Druecken Sie eine Taste" << '\n';

    cin >> ENDE;
}



ganz zufrieden bin ich damit aber nicht dass der benutzer des Programms dann etwas eingeben muss.

Kann man das ändern oder muss das so sein?
oder hast du das anders gemeint
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
City Hunter
Super JLI'ler


Alter: 38
Anmeldedatum: 18.04.2004
Beiträge: 330
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 19:34    Titel: Antworten mit Zitat

In der Main Funktion muss immer Systems('PAUSE'); stehen und nen return dazu.

Das ist deins

CPP:
#include <iostream>

int RADIUS = 0;
int ENDE   = 0;
const float PI = 3.14159f;

using namespace std;

int main(void)
{
    cout << "Bitte geben Sie den Kreisradius ein" << '\n';

    cin >> RADIUS;

    cout << "Die Flaeche des Kreises betraegt" << PI * RADIUS * RADIUS << '\n';

    cout << "Bitte Druecken Sie eine Taste" << '\n';

    cin >> ENDE;
}


und das ist meine verändrung.
CPP:
#include <iostream>

int RADIUS = 0; 
const float PI = 3.14159f;

using namespace std;

int main(void)
{
    cout << "Bitte geben Sie den Kreisradius ein" << '\n';

    cin >> RADIUS;

    cout << "Die Flaeche des Kreises betraegt" << PI * RADIUS * RADIUS << '\n';

    cout << "Bitte Druecken Sie eine Taste" << '\n';

    system("PAUSE");
    return 0;
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
manu
Super JLI'ler


Alter: 34
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 20:34    Titel: Antworten mit Zitat

City Hunter hat Folgendes geschrieben:
In der Main Funktion muss immer Systems('PAUSE'); stehen


wer sagt denn sowas? (außer du *g)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nixkoenner
Mini JLI'ler


Alter: 31
Anmeldedatum: 15.02.2007
Beiträge: 36

Medaillen: Keine

BeitragVerfasst am: 09.09.2007, 20:48    Titel: Antworten mit Zitat

DANKE!!! Jetzt schauts endlich so aus wie bei den Beispielprogrammen, auch wenn bei denen das nicht im Quellcode steht.
steht schon auf meinem Spickzettel für besondere Sachen die ich mir nicht merken kann! gg Wink
Ich danke allen nochmal für die Hilfe (bei toturials.de hab ich bis jetzt noch keine antwort gekriegt!!!) Confused

bis zu meinem nächsten Blackout, Laughing
bye
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 10.09.2007, 00:42    Titel: Antworten mit Zitat

Jetzt auch in der FAQ.
(siehe bei eleganteste Methode Wink )
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
City Hunter
Super JLI'ler


Alter: 38
Anmeldedatum: 18.04.2004
Beiträge: 330
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 11.09.2007, 07:29    Titel: Antworten mit Zitat

manu hat Folgendes geschrieben:
City Hunter hat Folgendes geschrieben:
In der Main Funktion muss immer Systems('PAUSE'); stehen


wer sagt denn sowas? (außer du *g)


Standt im Buch drin was ich mal hatte aber so gut war das nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum