Zeitzählung ?=



  • Hallo,
    Ich will folgendes... das er die ziet zählt .. PRO Sekunde soll so ein ! ausgeben werten , (z.b. 30 sekunden ) falls der user irgendein buchstabe drückt soll das aufhören und eine weitere zählung ovn 15 sekunden beginne ( ohne optische .. dings .. ) so , wenn die 30 sekunden von oben , vorbei sind soll kommen : Brauchst du Hilfe ?

    Einer eine idee ?



  • guck dir mal difftime und kbhit an



  • Guck dir das ma an vieleicht kannst dus zu deinem nutzen ändern!

    #include <stdio.h>
    #include <time.h>

    void wait ( int seconds )
    {
    clock_t endwait;
    endwait = clock () + seconds * CLOCKS_PER_SEC ;
    while (clock() < endwait) {}
    }

    int main ()
    {
    int n;
    printf ("Starting countdown...\n");
    for (n=10; n>0; n--)
    {
    printf ("%d\n",n);
    wait (1);
    }
    printf ("FIRE!!!\n");
    return 0;
    }

    Im Moment ist es noch ein Countdown Programm aber mit ein bisschen Geschick deinerseits macht es genau das was du willst.

    The Smart



  • öhm @ The Smart: ... in C++

    #include <iostream>
    #include <ctime>
    
    void wait(const unsigned short&);
    
    int main ()
    {
    	std::cout << "Countdown V1.0" << std::endl;
    	for (unsigned short n = 10; n > 0; --n)
    	{
    		std::cout << n << std::endl;
    		wait(1);
    	}
    	std::cout << "TIME OVER!" << std::endl;
    } 
    
    void wait(const unsigned short& sec) { while (std::clock() < (std::clock() + sec * CLOCKS_PER_SEC));		}
    

    ... allerdings hab ich auch hier wieder nicht getestet ... sollte aber so stimmen ...

    so und wenn du den Ansatz nutzen willst wäre dass dann :

    #include <iostream>
    #include <ctime>
    
    void wait(const unsigned short&);
    
    int main ()
    {
    	for (unsigned short n = 0; n < 30; ++n)
    	{
    		std::cout << "|" << std::endl;
    		wait(1);
    	}
    	std::cout << "30s over." << std::endl;
    
    	for (unsigned short n = 0; n < 15; ++n)
    		wait(1);
    	std::cout << "15s over." << std::endl;
    
    	for (unsigned short n = 0; n < 30; ++n)
    	{
    		std::cout << "|" << std::endl;
    		wait(1);
    	}
    	std::cout << "30s over." << std::endl;
    } 
    
    void wait(const unsigned short& sec) { while (std::clock() < (std::clock() + sec * CLOCKS_PER_SEC));		}
    

    ...



  • (d)evil bei deinem code fehlt nocht die abbruchbedingung die der poster gestellt hat 😉
    aber das sollte er wohl selber schaffen 🙂


Anmelden zum Antworten