Forum
Tipps
News
Menu-Icon

MinGW erstellt *.exe aber funktioniert nicht richtig

Hallo,

ich hab ein schnell ein ganz kleines Programm geschrieben:

// Kreisflaechenberechnung

#include<iostream>
using namespace std;
int main (int argc, char *argv[])
{
   const float PI=3.14f;
   float radius;
   float flaeche;
   std::cout<<"Gib den Radius an: ";
   std::cin>>radius;
   flaeche=(PI*radius);
   std::cout<<std::endl<<"Flaeche: "<<flaeche;
}

Der Compiler findet keine Fehler und kompiliert auch... wenn das Projekt daraufhin "buildet" und ausführt läuft es wunderbar. Doch wenn ich die EXE über den Ordner öffne läuft sie nicht! Ich bekomme also keine richtige EXE mit MinGW hin. Oder muss man die Exe erneut irgendwie "builden" ?

DANKE


Antworten zu MinGW erstellt *.exe aber funktioniert nicht richtig:

http://www.catb.org/~esr/faqs/smart-questions.html

Speziell der Absatz "Be precise and informative about your problem", und auch allgemein... achja ich meine damit besonders Fragen wie "(...) läuft sie nicht! Ich bekomme also keine richtige EXE (...)"

HI,
tolle Antwort echt ! Sieht man mal wieder was hier so alles rumläuft...
Zitat:"Höflichkeit tut nie weh und hilft manchmal"
von deiner schlauen Seite.

Es geht einfach darum das die erstellte EXE nur über den Compiler funktioniert. Sobald ich sie jedoch ganz normal öffne stürtzt sie bei der 1. Eingabe (in meinem Fall der Radius) einfach ab. Sobald ich Return drücke schließt sich die Datei.

Ich hoffe ich bekomme mal eine nette Antwort !
Ich hab halt noch NOOB, aber wie soll ich das denn ändern wenn mein Compiler streikt und ich meine Programe nich richtig benutzen kann?

DANKE schonmal
eierbaer

Es geht einfach darum das die erstellte EXE nur über den Compiler funktioniert. Sobald ich sie jedoch ganz normal öffne stürtzt sie bei der 1. Eingabe (in meinem Fall der Radius) einfach ab. Sobald ich Return drücke schließt sich die Datei.
DANKE schonmal

Gleichfalls, endlich hast du genügend Information geliefert, dass man das Problem verstehen kann.
Das Problem ist (ziemlich sicher) genau das was irgendwo am Ende eines deiner anderen Threads auch schonmal steht, was du aber offensichtlich ignoriert hast:
Das Fenster, in dem das Programm ausgeführt wird, schließt sich sofort. Daher muss dein Programm eine Verzögerung produzieren, also auf eine Benutzereingabe warten, und zwar zum beispiel mit cin.get();

Wenn du dein Programm aus der IDE heraus startest, führt die IDE es in einem speziellen Fenster aus, weil sie weiss, dass viele Programme genau dieses Problem haben. Dieses spezielle Fenster wird dann nicht geschlossen, sondern es steht da sowas wie 'Beliebige Taste drücken, umfortzusetzen'. Diese Eingabeaufforderung kommt jedoch nicht aus deinem Programm, sondern aus deiner IDE, und deshalb ist sie weg, wenn du dein Programm vom Explorer aus startest.

Also:
Wartezeit ans Ende deines Programms einbaun
oder
Programme von der Kommandozeile starten und nicht im Explorer anklicken.

t.t

Das ist mir dann hinterher auch eingefallen...
Danke aber trotzdem... bin so froh das das Ding endlich läuft...

Bis zur nächsten Frage  ;)
BYE


« Suche Programmierer für ParacodEingabe simulieren »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

Compiler
Als Compiler bezeichnet man ein Programm zum Übersetzen der Quellprogramme einer bestimmten Programmiersprache in ausführbare Dateien, also in die Maschinenspra...