Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gestion de temps

Sujet résolu
    29 mars 2008 à 23:03:31

    Bonjour,
    J'aimerais pouvoir faire fonctionner une fonction qui tourne en boucle pendant un certain temps. Après ce temps écoulé, la fonction ce termine et on revient dans le main.
    Avez vous une librairie, ou autre chose pour pouvoir réaliser ce que je veux faire ?
    Merci d'avance
    tuxben
    • Partager sur Facebook
    • Partager sur Twitter
      29 mars 2008 à 23:24:51

      Et tu veux qu'elle fasse quoi, ta boucle?
      • Partager sur Facebook
      • Partager sur Twitter
        29 mars 2008 à 23:42:23

        La boucle, rien.
        Je veux juste que ma fonction tourne pendant un certain temps, après ce temps la fonction se termine
        • Partager sur Facebook
        • Partager sur Twitter
          30 mars 2008 à 1:07:25

          Tu peux utiliser la fonction Sleep() de l'API Windows, mais cela rendra ton code non portable...

          1. #include <windows.h>
          2. int main()
          3. {
          4.    Sleep(1000); // dormir une seconde (1000 millisecondes)
          5.    return 0;
          6. }
          • Partager sur Facebook
          • Partager sur Twitter
            30 mars 2008 à 13:06:49

            Utilise une lib qui propose des timers. (SDL,SFML, en fait toutes...) et tu fais tourner ta boucle. Quand le timer a atteind le temps voulu, il chnage la vlauer d'une variable ad hoc et la tu sors de la boucle.

            C'est moche mais fonctionnel.
            • Partager sur Facebook
            • Partager sur Twitter
            Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
              30 mars 2008 à 13:41:11

              Pourquoi créer une variable intermédiaire en plus qui changerais de valeur pour sotir de la boucle, autant mettre directement la condition de temps dans la condition de la boucle :

              1. #include <iostream>
              2. #define TEMPS_VOULUE
              3. #define RECUPERER_TEMPS
              4. using namespace std;
              5. int main()
              6. {
              7.     {
              8.         int temps_initial = RECUPERER_TEMPS;
              9.         while(RECUPERER_TEMPS - temps_initial <= TEMPS_VOULUE)
              10.         {
              11.         }
              12.     }
              13.     return EXIT_SUCCESS;
              14. }


              PS : Les define c'etait juste pour tester, TEMPS_VOULUE, c'est la durée de ta boucle et RECUPERER_TEMPS la fonction qui recupere le temps.
              • Partager sur Facebook
              • Partager sur Twitter
              FaQ : Fr | En 1 2 | C++11 | Template || Blog : Deloget | C++|Boost--Dev | C++Next | GotW || Installer Boost
                30 mars 2008 à 18:55:32

                Ok, merci j'ai trouvé mon bonheur dans vos réponses ;)
                Je met le post en résolu
                tuxben
                • Partager sur Facebook
                • Partager sur Twitter
                  31 mars 2008 à 2:31:21

                  la boucle que t'as proposé "tuxben" se fait dans la programmation Assembleur seulement ;) , mais dans le C, je suis tout à fait d'accord d'utiliser :
                  sleep(2) ------> ici 2 secondes
                  delay (2000) -----> 2 secondes aussi
                  la différence c'est sleep ( en s) et delay ( en ms)
                  Mais si tu veux dire que tu veux qut toi même créer une fonction qui fait la même chose que "sleep" et "deay", ça sera autre chose !

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Gestion de temps

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown