Automatisches Schließen der Box unter Windows7 verhindern



  • Hey all.
    Ich bin ganz neu in Sachen "C++" und anderen Programmiersprachen und erhoffe mir daher hier die nötig Hilfe zu finden 🙂

    Mein Problem ist folgendes: ich hänge an einer der ersten Übungen von Shade Of Mine (http://tutorial.schornboeck.net/eingabe.htm). Habe genau den Code genommen, den er genommen hat:

    #include<iostream>
    using namespace std;

    int main()
    {
    int zahl1;
    int zahl2;
    int zahl3;

    cout<<"Bitte eine Zahl eingeben\n";
    cin>>zahl1;
    cout<<"Bitte noch eine Zahl eingeben\n";
    cin>>zahl2;
    cout<<"Bitte eine letzte Zahl eingeben\n";
    cin>>zahl3;
    cout<<"Die Ausgabe lautet\n";
    cout<<zahl1<<" "<<zahl3<<" "<<zahl2<<"\n";
    }

    Aaaaber meine Dosbox schließt sich automatisch, bevor dort die drei Zahlen angezeigt werden können, wenn ich auf ENTER drücke. Ich habe mir - brav wie ich bin 😉 - auch schon folgenden Thread im Forum angeschaut, da dort genau mein Problem beschrieben wirdhttp://c-plusplus.net/forum/viewtopic-var-t-is-111042.html und habe alle Möglichkeiten ausprobiert, aber leider klappts immer noch nicht. Liegts vielleicht daran, dass ich Windows 7 (64 bit) besitze?

    Bitte um Hilfe.



  • Ich weiss nicht, obs an 7 liegt, aber wenn du Visual Studio hast, kannst du auch Ctrl+F5 benutzen, dann wartet die Konsole noch automatisch auf eine Eingabe.



  • Was passiert denn, wenn du es direkt von der Konsole aus startest?



  • Ähm, ich besitze Visual Basic 2008, aber damit komme ich noch nicht gut zurecht. Habe mir deshalb einen anderen kostenlosen Compiler namens "Dev-C++ 4.9.9.2" runtergeladen.

    Wie gesagt, was passiert ist folgendes: es werden mir alle Schritte angezeigt bis auf den Letzten. Dieser sollte mir dann beim Drücken der Enter-Taste eigentlich meine drei Zahlen anzeigen. Das tut er auch, aber leider is das ganze nur für einen Bruchteil einer Sekunde zu sehen, weil sich danach sofort die Dosbox selbstständig schließt.



  • den Grund für das Schließen hast du ja schon gefunden.
    Und jetzt hast du zwei Möglichkeiten:
    1. diese waitfunktion einbauen
    2. start->ausführen->cmd
    ins Verzeichnis deiner exe wechslen (Befehl: cd Pfad) und manuel starten

    ich finde den zweiten weg schöner, weil ich es hasse wenn programme unnötig warten

    und ich könnte fast wetten dass gleich einer kommt und dir erzählt das Dev-cpp veraltet ist und du was anderes nehmen sollst



  • Puh.. das mit dem zweiten Weg sagst du so einfach 😃 Wie wechsel ich denn über die Dosbox in das Verzeichnis meiner exe (welche exe überhaupt)?



  • (welche exe überhaupt)?

    Die .exe-Datei die dein Compiler erzeugt hat (in dem Verzeichnis oder einem Unterverzeichnis, in dem auch die .cpp-Quelldateien liegen)

    Wie wechsel ich denn über die Dosbox in das Verzeichnis

    Befehl: cd Pfad



  • Alles klar, jetzt hab ichs begriffen. Hab die Anwendung jetzt mal manuell über die Dosbox ausgeführt und da ging alles perfekt. Aber trotzdem muss es doch möglich sein, irgend einen Code im Compiler anzuhängen, damit ich auch einfach so die .exe ausführen kann und dann alles glatt läuft, oder?



  • So sollte es funzen, habe aber nur Vista.
    Auch mit Dev-C++ 4.9.9.2 erstellt.

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int zahl1; 
        int zahl2; 
        int zahl3; 
    
        cout<<"Bitte eine Zahl eingeben: "; 
        cin>>zahl1; 
        cout<<"Bitte noch eine Zahl eingeben: "; 
        cin>>zahl2; 
        cout<<"Bitte eine letzte Zahl eingeben: "; 
        cin>>zahl3; 
        cout<<"Die Ausgabe lautet\n"; 
        cout<<zahl1<<" "<<zahl3<<" "<<zahl2<<"\n"; 
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Gruß,

    Doug_HH



  • Ähm, ich besitze Visual Basic 2008, aber damit komme ich noch nicht gut zurecht.

    Visual C++ hat nichts mit Visual Basic zu tun.

    Habe mir deshalb einen anderen kostenlosen Compiler namens "Dev-C++ 4.9.9.2" runtergeladen.

    DevC++ ist ein großer Scheiß, veraltet und seit 5 Jahren nicht mehr geupdatet.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Doug_HH schrieb:

    So sollte es funzen, habe aber nur Vista.
    Auch mit Dev-C++ 4.9.9.2 erstellt.

    Ich bekomm leider ne Fehlermeldung -> http://img51.imageshack.us/img51/1545/fehlermeldungn.png
    Klappt nich 😕 Wo das Problem liegt weiß ich leider nich..

    Visual C++ hat nichts mit Visual Basic zu tun.

    Ok, die Installation von Visual C++ 2008 läuft. Hatte irgendwo etwas über einen Compiler in Visual Basic 2008 gelesen und dachte, das wäre das richtige Programm.



  • Die letzte schließende Klammer ist zu viel }.



  • Doug_HH schrieb:

    Die letzte schließende Klammer ist zu viel }.

    Ah, stimmt. Aber klappt leider trotzdem nicht.. die Dosbox schließt sich erneut viel zu früh. Lässt sich mein Problem überhaupt lösen oder geht das evtl mit Windows 7 gar nicht?



  • Saug Dir doch mal Visual Studio C++ 2008 Express...

    http://www.microsoft.com/germany/Express/download/downloaddetails.aspx?p=vcpp

    Und dann gib mal Gummi.... 😃



  • Dekunuss schrieb:

    Doug_HH schrieb:

    Die letzte schließende Klammer ist zu viel }.

    Ah, stimmt. Aber klappt leider trotzdem nicht.. die Dosbox schließt sich erneut viel zu früh. Lässt sich mein Problem überhaupt lösen oder geht das evtl mit Windows 7 gar nicht?

    Starte das Programm über die Konsole.



  • Icematix schrieb:

    Starte das Programm über die Konsole.

    Das schockt doch nicht, da hätte ich auch kein Bock drauf...



  • Doug_HH schrieb:

    Saug Dir doch mal Visual Studio C++ 2008 Express...

    http://www.microsoft.com/germany/Express/download/downloaddetails.aspx?p=vcpp

    Und dann gib mal Gummi.... 😃

    So, habs jetzt 🙄 Aber leider steh ich nun vor nem neuen Problem. Hab den Code eingefügt und will das Ganze debuggen, aber:

    1. Fehlermeldung, ich klicke auf "ja":http://img203.imageshack.us/i/meldung1.png/
    2. Fehlermeldung, wieder klicke ich auf "ja": http://img229.imageshack.us/i/meldung2.png/
    3. Fehlermeldung: http://img191.imageshack.us/i/meldung3.png/
    Was hab ich jetzt schon wieder falsch gemacht? 😞

    Starte das Programm über die Konsole.

    Das habe ich schon versucht und auf diesem Wege klappt es auch, aber es muss doch auch irgendwie ohne die Konsole gehen.



  • 1. Nein anklicken und Häckchen bei "Dieses Dialogfeld nicht mehr anzeigen" setzen.
    2. Gibt es dann nicht mehr.
    3. Zeig mal Code, da stimmt was mit dem Pfad nicht.



  • Dekunuss schrieb:

    Doug_HH schrieb:

    1. Nein anklicken und Häckchen bei "Dieses Dialogfeld nicht mehr anzeigen" setzen.

    Bei "nein" erscheint ebenfalls die Fehlermeldung 3.

    [EDIT]:
    Ich habe jetzt mal ein wenig nachgeforscht. Wie schon erwähnt erscheint bei mir stetig Fehlermeldung 3. Mir ist nun aufgefallen, dass mein Dateipfad stark von dem in der Fehlermeldung abweicht, da meiner auf Deutsch ist, der in der Meldung aber auf Englisch. Außerdem befindet sich in meinem Pfad auch keine .exe, von der in der Fehlermeldung dauernd die Rede ist. Habe versucht mein Projekt als .exe in dem besagten Pfad abzuspeichern, aber wie ich das genau machen soll, blick ich immer noch nich (ich kann mein Projekt nur als Textdatei speichern).

    Wie änder ich denn meinen Pfad oder speicher mein Projekt korrekt ab? Oder hat das alles möglicherweise gar nichts mit meinem Problem zu tun?

    PS: neben dem Debug-Button in Visual C++ kann ich verschiedene Optionen fürs Debuggen auswählen. Im ersten Fenster kann ich zwischen "Debug", "Release" und "Konfigurations-Manager" wählen. Im zweiten Fenster dann zwischen "Win32" und dem Konfigurationsmanager. Ich besitze allerdings nur die 64bit Version. Vielleicht ist das ein weiteres Kriterium..

    Und hier is der Code:

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        int zahl1;
        int zahl2;
        int zahl3;
       
        cout<<"Bitte eine Zahl eingeben: ";
        cin>>zahl1;
        cout<<"Bitte noch eine Zahl eingeben: ";
        cin>>zahl2;
        cout<<"Bitte eine letzte Zahl eingeben: ";
        cin>>zahl3;
        cout<<"Die Ausgabe lautet\n";
        cout<<zahl1<<" "<<zahl3<<" "<<zahl2<<"\n";
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

Anmelden zum Antworten