Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compte a rebour?

    13 décembre 2005 à 17:20:48

    Bonjour tout le monde.
    J aimerais savoir si il est possible d inserer un compte a rebourd dans un programme. Dans le genre "la bombe va exploser! Courez!" et ensuite les secondes defilent...
    Merci d avance.
    • Partager sur Facebook
    • Partager sur Twitter
      13 décembre 2005 à 17:58:37

      Selon ton système tu peux sûrement sleeper
      POSIX : sleep, nanosleep (extension TMR)
      • Partager sur Facebook
      • Partager sur Twitter
        13 décembre 2005 à 19:22:59

        Oué un simple Sleep(1000); suffit ;)

        #include <cstdlib>
        #include <iostream>
        #include <windows.h>

        using namespace std;

        int main(int argc, char *argv[])
        {
        long int i, a, c, min2, sec, heure2, min, heure, jours;
        while (1==1) {
        system("color f9");
        system("title By-DDX39");
        system("cls");
        i=0;
        cout<<"\n Entrez le nombre de secondes : ";
        cin>>a;
        c=a;
        a=a+1;
        while (a>i) {
              system("cls");
              cout<<"\n Entrez le nombre de secondes : "<<c;
              a--;
              min2=a/60;
              sec=a%60;
              heure2=min2/60;
              min=min2%60;
              jours=heure2/24;
              heure=heure2%24;
              if (jours==1) {
                               cout<<"\n\n\n "<<jours<<" jour, "<<heure;
                            }
                            else {
                               cout<<"\n\n\n "<<jours<<" jours, "<<heure;
                                 }
              if (heure==1) {
                               cout<<" heure, "<<min;
                            }
                            else {
                               cout<<" heures, "<<min;
                                 }
              if (min==1) {
                               cout<<" minute et "<<sec;
                            }
                            else {
                               cout<<" minutes et "<<sec;
                                 }
              if (sec==1) {
                               cout<<" seconde restante...";
                            }
                            else {
                               cout<<" secondes restantes...";
                                 }
              Sleep(1000);
              }
        system("color fc");
        cout<<"\n\n\n\n\n\a\a\a  Boooooooooooooooooooooooooooooooooooooommmmmmmmm\a\a\a";
        system("pause>nul");
        }
        }
        • Partager sur Facebook
        • Partager sur Twitter
          13 décembre 2005 à 19:35:28

          A noter que sleep (posix) prend des secondes et que Sleep (w32) prend des microsecs.
          • Partager sur Facebook
          • Partager sur Twitter
            13 décembre 2005 à 20:15:12

            Citation : rz0

            A noter que sleep (posix) prend des secondes et que Sleep (w32) prend des microsecs.



            Et ya pas de fonction portable ?

            EDIT : En tout cas, ça fonctionne sous linux avec sleep ( et ça prend des secondes ).

            rz0 : c'est quoi, en fait, posix ? J'en ai entendu parler pour les regex mais c'est tout ...
            • Partager sur Facebook
            • Partager sur Twitter
              13 décembre 2005 à 20:27:47

              Bah POSIX est un standard d'OS respecté par une bonne partie des OS du monde (sauf Windows, qui l'eu cru) donc POSIX = portable sur les systèmes qui le respectent comme GNU/Linux, *BSD et donc OS X, etc.
              • Partager sur Facebook
              • Partager sur Twitter
                13 décembre 2005 à 20:46:03

                Sleep est porte sur unix (en tout cas sur netbsd...)
                • Partager sur Facebook
                • Partager sur Twitter
                  13 décembre 2005 à 22:06:26

                  En revanche j'aimerais savoir l'inverse ... s'il vous plait !!
                  Comment fais t on pour mettre en route un chronomètre!!
                  et compter le nombres de secondes qui s'écoulent....
                  Merci
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 décembre 2005 à 22:10:46

                    Je voudrais un mars tout prêt, fraîchement débalé à la main, taille moyenne, goût classic...
                    Merci.

                    Si on te dit comment dormir pour N secondes, ça ne doit pas être bien dur de transformer ça en : Apr-s N secondes afficher un décompte quand même...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 décembre 2005 à 16:37:43

                      Hello.
                      Desole rzO mais j ai qu un Twix... Ca te va quand meme... Et attention... C est 2 pour le prix d un... LoL :p
                      Bon merci pour vos reponses.
                      Non un sleep ne suffit pas car je voudrais faire les secondes defiler a l ecran... Mais si je dois ecrire tout le code que ddx39 a cite je sens que je vais me faire ch***... Y a pas plus court?? Juste un exemple pour faire defiler dix petites secondes...
                      Merci a tous. :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 décembre 2005 à 19:53:07

                        #include <windows.h>
                        #include <iostream>

                        using namespace std;

                        int main(void) {
                        int i = 60;
                        while (i >= 0) {
                        system("cls");
                        cout<<i;
                        i--;
                        Sleep(1000);
                        }
                        system("pause>nul");
                        return 0;
                        }



                        Je l'ai fait vite fait j'ai pas testé donc ça se trouve ça marche pas mais je pense que ça doit être bon ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 décembre 2005 à 14:06:36

                          Lu,

                          C'est bon sauf qu'il y a une accolade de trop à la fin !

                          Amicalement,
                          Jordan
                          • Partager sur Facebook
                          • Partager sur Twitter
                            23 février 2006 à 20:23:11

                            Je comprend pas : quand je met un sleep(10); (je suis sous linux), au lieu de stopper le programme au moment de l'instruction, ça stop 10sec au début du programme. En gros, ça attend 10 sec, et le programme démarre. Or moi j'aimerais pouvoir faire la pause au moment où il y a le sleep.
                            Sinon ya quoi comme fonction standard qui peut renvoyer un temps sous linux et/ou windows? (comme ça c'est possible de remplacer sleep par un while(tempsActuel < tempsRef + 10).
                            Mais je comprends vraiment pas pour sleep... ça devrait pourtant marcher...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 février 2006 à 22:26:06

                              En standard il y a clock() et CLK_TCK, ce dont je m'étais servi pour timer un algorithme (mais rz0 m'avait fait remarquer que c'était lourd pour le CPU et qu'il était préférable d'utiliser des méthodes non-portables fournies par son OS).
                              • Partager sur Facebook
                              • Partager sur Twitter
                                25 février 2006 à 15:40:31

                                Salut alors je vous propose mon code qui affiche une durée toujours sur la meme ligne.
                                (a la difference du code de ddx39 qui affiche 60, puis efface toute la fenetre pour afficher 59)
                                Le mien remplacerai (sauf que le miens incrémente et va jusqu'a 120) le 60 par le 59.
                                Je commence tempsmis à 1 par nécessité dans mon prog.(dur d'etre clair!!)
                                Si jamais je suis completement a coté de la plaque dites le moi,( je pense etre dans la catégorie des semi-noob.)

                                 int tempsmis = 1;
                                     
                                    while (tempsmis!=120) {
                                   
                                     Sleep(1000);
                                    printf("\r%d",tempsmis);
                                   
                                    tempsmis++;}
                                    return tempsmis;
                                   
                                    }
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Compte a rebour?

                                × 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