Problem bei Dev-C++



  • Hallo,

    Ich vor kurzem angefangen C++ zu lernen und benutzte Dev-C++.
    Ich hab mir auch gleich mal ein paar Tutorials runtergleaden in denen z.B das legendäre Rogramm "Hello World" abgebildet ist:

    #include <iostream>
    int main()
    {   
       cout<<"Hello, world!"<<endl;
    }
    

    Jetzt sollte ja eigentlich ein Fenster erscheinen indem "Hello World" steht.
    Nur wenn ich dieses Programm ausführe blitzt es nur einen sekundenbruchteil auf.

    Das passiert übrigens auch bei anderen ähnlichen Programmen.

    ich habe einen

    - Intel Pentium 3 1000
    - 512 mb sdram
    - Windows 2000 professional
    - Dev-C++ 4.0

    ich hoffe ihr könnt mir helfen!



  • int x;
    cin >>x;

    dann bleibt es offen bis eine zahleneingabe kommt.

    es gibt da verschiedene möglichkeiten, aber du beendest das programm ja auch.. warum sollte es dann offen bleiben?

    [ Dieser Beitrag wurde am 30.06.2003 um 16:19 Uhr von elise editiert. ]



  • OK, so klappts, aber ich habe mir den Borland-C++ compiler 5.5 runtergeladen und wenn ich da z.B. die "bcc32.exe" starte tritt das gleiche prob auf.

    thx 4 help!



  • #include <iostream>
    int main()
    {   
       cout<<"Hello, world!"<<endl;
       getch();
    }
    

    so sollte die ganze sache offen bleiben, bis ne taste gedrückt wird!
    das problem hatte ich am anfang auch. es hat übrigens nichts mit dem kompiler zu tun. nach dem "cout<<..." ist dein programm einfach mal zu ende und wird beendet!

    cu, und viel spass beim proggen!!!



  • getch gibts nicht! gehört nicht zum standard



  • Hab ich auch vorhin bemerkt...
    Aber wenn man <stdlib.h> includiert und als Befehl system("pause") eingibt funktioniert's auch.



  • netz schrieb:

    getch gibts nicht! gehört nicht zum standard

    conio.h



  • Also ich finde getch() unterstützt durch conio.h die einfachste Lösung. Die Compiler, die man tyischerweise verwendet, z.B. MSVC++ oder Dev-C++, unterstützen diese Funktion. Die C++-Standard-Lösung ist IMHO schlichtweg eine Zumutung. 🙄

    <stdlib.h> ist heute übrigens <cstdlib>.
    system("pause") ist o.k., getch() jedoch kürzer und treffender.



  • ich mach´s immer mit

    cin.get()
    

    Dafür braucht man weder eine zusätzliche Headerdatei, noch Variable 🙂



  • @Falky: wenn es sicher funktionieren würde, wäre es die richtige Lösung, macht es aber nicht. Schau mal in die C++ FAQ.



  • Hi Lumbag0!!

    Es ist ganz normal das die Fenster-Konsole sich sofort nach der Anweisung
    schließt. Weil es eine EXE-Datei ist. EXE steht für EXECUTE, und heist auf
    deutsch übersetzt AUSFÜHREN.

    💡 Tipp: Wenn Du dein Programm unter ➡ MS-DOS startest, bleibt dein
    Programm solange offen bis Du das MS-DOS Fenster schließt, oder EXIT
    eingiebst.



  • Erhard Henkes schrieb:

    @Falky: wenn es sicher funktionieren würde, wäre es die richtige Lösung, macht es aber nicht. Schau mal in die C++ FAQ.

    warum nicht einfach eine funktion wait() schreiben?

    void wait()
    {
    cin.clear();
    cin.ignore(cin.rdbuf()->in_avail());
    cin.get();
    }
    


  • Möglichkeit 1:

    #include <iostream>
    void wait() 
    { 
      std::cin.clear(); 
      std::cin.ignore( std::cin.rdbuf()->in_avail() ); 
      std::cin.get(); 
    }
    
    int main()
    {
      //...
      wait();
    }
    

    Möglichkeit 2:

    #include <conio.h>
    int main()
    {
      //...
      getch();
    }
    

    Da ziehe ich Variante 2 vor. Variante 1 ist allerdings portabler.



  • @Shade Of Mine:
    Das erste Programm Deines hervorragenden Tutorials lautet:
    ..
    Du weichst dem Thema in den folgenden Lektionen weiterhin aus.
    Mit getch() habe ich bisher nie Schiffbruch erlitten.



  • @Erhard Henkes

    getch() war auch meine bevorzugte Variante - jetzt teste ich jedoch dec-c++ version 4 und bekomme die Fehlermeldung:
    implicit declaration of function int getchar(...). Bisher habe ich die IDE Borland C++ 4.52 genutzt, ohne, dass dieses Problem auftrat. Die conio.h findet sich auch im entsprechenden Unterverzeichnis des DEV-C++ Ordners.

    Ähnliches passiert bei der Funktion randomize().

    Hier nochmal der verwendete Quellcode:

    #include <iostream>
    #include <conio.h>

    using namespace std;

    //Ein C++-Programm beginnt bei main().
    int main()
    {
    cout << "C++ ist Power-Programmierung.";
    getch();
    return 0;
    }



  • #include <stdio.h>
    #include <conio.h>
    void main()
    {
       clrscr();
       printf("Hello World!");
       getch();
    }
    

    Das dürfte funzen.
    mfg
    TommyFly 😉



  • lol?!

    ich selber benutze Dev C++ und in der schule haben wir den borland builder es funzt bei beiden hiermit:

    #include <iostream.h>
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
    cout<<"Hello World";
    
    getchar();  
    return 0;     /*  kann man auch weglassen is aba 
    bessa geproggt dadurch wegen "int main" :) 
    im borland builder geht aber auch void main =P*/
    }
    

Anmelden zum Antworten