cout<<"Press any key to close the window.";



  • ChrisM schrieb:

    Hi,

    mach einfach while (kbhit()); (evtl. noch mit sleep() drin, um nicht 100% CPU-Auslastung zu verbrauchen)

    Geht allerdings nur unter Windows... 😞

    ChrisM

    while (kbhit())
    sleep();

    Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
    test.cpp:
    Error E2268 test.cpp 42: Call to undefined function 'kbhit' in function main()
    Error E2268 test.cpp 43: Call to undefined function 'sleep' in function main()
    *** 2 errors in Compile ***

    der Tip von D1BAKEL war schon ok. Das funktioniert - Wenn auc nur mit der Enter-Taste. 🙂



  • Du musst die conio.h einbinden, also
    #include <conio.h>
    am Anfang einfuegen...

    Und Sleep() wuerd ich nen Parameter geben, wegen des Arbeitsspeichers...

    mfG D1B



  • Hi,

    ist es so viel Arbeit, schnell in dem MSDN zu schauen, welchen Header kbhit() und sleep() jetzt brauchen? 😕

    ChrisM



  • jo. hab die #include <conio.h> eingefügt, nun kommt nur noch:

    Error E2268 test.cpp 44: Call to undefined function 'sleep' in function main()
    *** 1 errors in Compile ***

    🙂



  • jo. hab die #include <conio.h> eingefügt, nun kommt nur noch:

    Error E2268 test.cpp 44: Call to undefined function 'sleep' in function main()
    *** 1 errors in Compile ***

    😉

    Ups: 1mal zuviel. sorry



  • schau in die Konsolen FAQ und nimm eine ordentliche Lösung. Das was sonst hier genannt wurde ist mies.



  • Das seh ich auch so, aber jetzt ma im Ernst, welchen Header benoetigt sleep(), ich kann nichts finden...



  • Naja, kommt darauf auch an was er genauer will.

    Denn mit der funktion system ("Pause") oder so ähnlich, wäre auch eine möglichkeit auf einen Tastendruck zu beenden.



  • Naja, kommt darauf auch an was er genauer will.

    Denn mit der funktion system ("Pause") oder so ähnlich, wäre auch eine möglichkeit auf einen Tastendruck zu beenden.



  • Trotz Doppelpost ne feine Loesung, hatte ich schon ganz vergessen... 😉



  • Oh Gott!

    Wird das hier ein 'Wer findet die mieseste Lösung' Wettkampf?



  • Shade Of Mine schrieb:

    schau in die Konsolen FAQ und nimm eine ordentliche Lösung. Das was sonst hier genannt wurde ist mies.

    Das hab ich versucht, jedoch ohne Erfolg. Das Fenster schliesst sich automatisch nach Beendigung.  😕

    Da ich nicht denke dass die Lösung hier falsch ist werde ich wohl ein Fehler gemacht haben. Habe es aber 1:1 copy&pasted.



  • Das war auch nich fertig, das mit kbhit() war nur ne Anregung...
    @Shade Of Mine: Ich hoffe du hast meinen Smilie erkannt... 🙄



  • Wen du unter dein cout noch diese drei zeilen schreibst sollte das aber gehen

    std::cin.clear ();
      std::cin.ignore ( std::cin.rdbuf () -> in_avail () );
      std::cin.get ();
    


  • Zer0 Escape schrieb:

    Das hab ich versucht, jedoch ohne Erfolg. Das Fenster schliesst sich automatisch nach Beendigung.  😕

    Na dann frag doch einfach nach 😉

    Da ich nicht denke dass die Lösung hier falsch ist werde ich wohl ein Fehler gemacht haben. Habe es aber 1:1 copy&pasted.

    ersetze std::cin.rdbuf()->in_avail() mal durch std::numeric_limitsstd::streamsize::max()



  • SirLant schrieb:

    Wen du unter dein cout noch diese drei zeilen schreibst sollte das aber gehen

    std::cin.clear ();
      std::cin.ignore ( std::cin.rdbuf () -> in_avail () );
      std::cin.get ();
    

    danke! so klappts 😃



  • Shade Of Mine schrieb:

    Zer0 Escape schrieb:

    Das hab ich versucht, jedoch ohne Erfolg. Das Fenster schliesst sich automatisch nach Beendigung.  😕

    Na dann frag doch einfach nach 😉

    Da ich nicht denke dass die Lösung hier falsch ist werde ich wohl ein Fehler gemacht haben. Habe es aber 1:1 copy&pasted.

    ersetze std::cin.rdbuf()->in_avail() mal durch std::numeric_limitsstd::streamsize::max()

    der Fehler liegt nicht an den 3 Zeilen. ich hatte es vorher so:

    #include <iostream.h>

    void main()
    {
    cout<<"Dies ist ein Test\n";
    wait;
    }

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

    so gings leider nicht. Weiss jmd wieso 🙂

    PS Frage am Rande: was bedeutet dieses "std::" ich setz das nie vor cin und cout. Hat das eine spezielle Bedeutung?



  • ps. habe getchar mit getch verwechselt 😃
    Standard C++ wird dir jedoch niemals eine Lösung mit
    "Press Any Key To Continue" anbieten.



  • 1. Man Ruft funktionen nicht so auf "wait;" sondern so "wait ();"
    2. Man schreibt "int main ()" und nicht "void main ()"
    3. iostream.h ist veraltet, verwende iostream, diese verwendet Namespaces
    (namensräume), daher das std:: , da sie im namensraum std liegen. Mit dem
    :: Operator nimmst du bezug auf Variablen/Methoden innerhalb dieses Namensraumes.



  • siehe dazu die FAQs auf HumeSikkins Seite
    (kann im moment leider nicht links darauf geben, mein browser stürzt da nämlich ab :()


Anmelden zum Antworten