Pause in C++ einbauen



  • Wie baut man eine Pause in ein Programm ein, Rede von einer Wartezeit in Millisekunden bis das Programm weitergeht. Bitte Headerdatei und Befehl angeben. Am besten mit Beispiel.



  • http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v=vs.85).aspx
    Könnte mir auch vorstellen, dass es eine Funktion aus der Standard C++ Lib gibt, was natürlich schöner wäre.

    #include <Windows.h>
    int main()
    {
        Sleep(1000) // 1000 milliseconds
    }
    




  • DarkShadow44 schrieb:

    Schaust du hier: cppreference.com: thread - sleep_for

    Zunächst hat die Fage nichts mit MFC zu tun (falsches Forum).
    Geht man davon aus das es unter Windows laufen soll, würde C, C++ oder WinAPI in Frage kommen.

    Der Link von DarkShadow würde C++11 und dann VisualStudio 2012 oder höher erfordern, da sonst weder <crono> noch <thread> verfügbar sind.

    In welchem Bereich soll denn genau gewartet werden ? Mit welcher Genauigkeit ?
    Wartezeiten mit einer Genauigkeit von unter 16ms (Thread-Umschaltzeit ?) sind heikel.

    Wenn es nicht so drauf ankommt kann man Sleep oder eine Timerfunktion verwenden.

    Hier noch eine Demo was bei Sleep(1) passiert:

    void sleeptest(void)
    {
    	std::clock_t clkstart, clkduration;
    
    	for (unsigned int i = 0; i < 10; i++)
    	{
    		clkstart = std::clock();
    
    		Sleep(1);
    
    		clkduration = std::clock() - clkstart;
    		std::cout << "Time: " << (double)clkduration/CLOCKS_PER_SEC*1000 << "ms." << std::endl;
    	}
    }
    

    Es schadet auch nicht sich die Doku anzusehen, insbesondere unter dem Aspekt "minimum timer resolution".

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms686298.aspx



  • [quote="merano"]

    DarkShadow44 schrieb:

    Schaust du hier: cppreference.com: thread - sleep_for

    Hier noch eine Demo was bei Sleep(1) passiert:

    void sleeptest(void)
    {
    	std::clock_t clkstart, clkduration;
    
    	for (unsigned int i = 0; i < 10; i++)
    	{
    		clkstart = std::clock();
    
    		Sleep(1);
    
    		clkduration = std::clock() - clkstart;
    		std::cout << "Time: " << (double)clkduration/CLOCKS_PER_SEC*1000 << "ms." << std::endl;
    	}
    }
    

    du kennst anscheinend die Funktion : using namespace std; noch nicht
    oder war das bewusst von dir ????



  • neu_ling schrieb:

    du kennst anscheinend die Funktion : using namespace std; noch nicht oder war das bewusst von dir ????

    Hast du noch mehr Neuheiten für uns ?

    Wenn man es, wie auch die includes, weglässt provoziert man insbesondere bei Anfängern nur
    unnötige Nachfragen ...

    In einem Codefragment wird einfach deutlicher aus welchem namespace eine Funktion stammt.
    Du kannst aber auch gerne alle namespaces pro­phy­lak­tisch aufmachen.



  • @merano: Danke, hat mir weiter geholfen.


Log in to reply