Partage
  • Partager sur Facebook
  • Partager sur Twitter

Revenir au départ

Revenir au début de main()

Anonyme
    12 mars 2006 à 10:14:42

    Salut ! :p



    Je voudrais savoir si c'est possible de revenir au début de la "fonction" main() a partir d'une commande, je suis débutant, donc j'ai tout simplement essayé ca:
    main();

    Mais sa me donne une erreur lors de la compilation...
    Avez-vous une idée ? Je suis débutant, soyez indulgents ! ^^


    En fait j'ai besoin de ca pour faire une fonction qui, a la fin du programme dit ca:
    Tappez 'Exit' pour quitter ou 'Reset' pour redemarrer le programme:

    Donc... si vous avez une fonction toute prète similaire, je suis preneur ! :D

    ;) Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      12 mars 2006 à 10:20:02

      do ... while sur tout ton programme
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        12 mars 2006 à 10:23:24

        Oui c'est ce que j'avais fait... mais si je pouvais éviter ca... sa m'arrangerais ! lol
        • Partager sur Facebook
        • Partager sur Twitter
          12 mars 2006 à 10:27:13

          en gros tu as 2 methode soit la boucle qui englobe tout comme l'a dit N@CR0T!C, soit tu utilise un goto mais c'est assez deconseillé, cela rend le programme illisible si mal utilisé.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            12 mars 2006 à 10:29:14

            Ha ... les goto je connais pas encore !
            Bon... bin merci !!!
            • Partager sur Facebook
            • Partager sur Twitter
              12 mars 2006 à 11:28:46

              franchement le do ... whil c'est claire si tu met des commentaires
              • Partager sur Facebook
              • Partager sur Twitter
                12 mars 2006 à 12:27:24

                Citation : Shido

                Oui c'est ce que j'avais fait... mais si je pouvais éviter ca... sa m'arrangerais ! lol


                Pourquoi ? C'est pourtant la seule façon de le faire proprement.
                • Partager sur Facebook
                • Partager sur Twitter
                Music only !
                  12 mars 2006 à 12:37:10

                  Pourquoi vous ne voulez pas lui donner des exemples de goto? o_O
                  Bon, tout comme toi je ne sais pas utiliser goto en C/C++ :( (j'aimerais bien).
                  Mais il y a une autre technique!

                  int main()
                  {
                  /*Ton Programme...*/

                  //Ré–execution de main:
                  main();
                  }


                  Mais attention si tu écrit ceci:

                  int main()
                  {
                  /*Ton Programme...*/

                  //Ré–execution de main:
                  main();
                  //Une commande‚ par ex:
                  system("PAUSE");
                  }

                  Si main() s'est executé 10fois, lorsque l'on quittera main() ça affichera 10 fois system("PAUSE");
                  Il faut donc faire attention et mettre parfois des conditions...

                  Voilà j'espere t'avoir aidé ;)
                  ++
                  • Partager sur Facebook
                  • Partager sur Twitter
                  ~( ・   ω   ・)~
                    12 mars 2006 à 12:57:23

                    Citation : Oli

                    Pourquoi vous ne voulez pas lui donner des exemples de goto? o_O
                    Bon, tout comme toi je ne sais pas utiliser goto en C/C++ :( (j'aimerais bien).


                    L'utilisation de goto est formellement déconseillée, surtout pour faire des boucles.

                    Lire cet article :

                    http://www.acm.org/classics/oct95/

                    Citation : Oli


                    Mais il y a une autre technique!


                    int main()
                    {
                    /*Ton Programme...*/

                    //Ré–execution de main:
                    main();
                    }



                    Cette technique (appel récursif) est aussi déconseillée pour main(). Elle est d'ailleurs interdite en C++.

                    Comme déjà exposé, la bonne solution est le do-while qui correspond exactement à

                        (main)
                          |
                    +––––>|
                    |  +–––––––+
                    |  |action |
                    |  +–––––––+
                    |      |
                    |      |
                    | N  _____
                    +–– /fin ?\
                        \_____/
                           | O

                    Présentation massacrée à cause du remplacement de '-' par '-' (décimal 150). Il y a vraiment un bug dans le mécanisme qui formatte le code...
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Music only !
                      12 mars 2006 à 14:28:00

                      ha ok merci pour les précisions et ça m'éviteras de faire des bétises en C++(comme je préfère le C++ au C...) ^^
                      Mais j'utilise jamais ou rarement cet technique sauf si je veu faire un truc de ce genre:
                      #MENU#
                      Entrez un nombre entre 0 et 10: 89
                      Incorrect! Recommencez...

                      #MENU#
                      Entrez un nombre entre 0 et 10: _


                      L'exemple est assez parlant non? et dans ce cas je ne vois pas comment utiliser une autre méthode que l'appel récursif(ou un goto) ...
                      Et j'ai utilisée l'appel récursif dans d'assez gros programme(avec plusieur centaines de lignes...) et j' n'ait eu aucuns problemes :):D
                      • Partager sur Facebook
                      • Partager sur Twitter
                      ~( ・   ω   ・)~
                        12 mars 2006 à 14:34:52

                        Citation : Oli

                        Mais j'utilise jamais ou rarement cet technique sauf si je veu faire un truc de ce genre:

                        #MENU#
                        Entrez un nombre entre 0 et 10: 89
                        Incorrect! Recommencez...

                        #MENU#
                        Entrez un nombre entre 0 et 10: _



                        L'exemple est assez parlant non? et dans ce cas je ne vois pas comment utiliser une autre méthode que l'appel récursif(ou un goto) ...


                        Tu veux savoir comment coder ça ? C'est ça ?

                        Pseudo-code:

                        DO
                           n := getnum()

                           err := n < MIN OR n > MAX

                           IF err
                              print ("error")
                           ENDIF
                        WHILE err

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Music only !
                          12 mars 2006 à 14:54:50

                          do
                          // ton code
                          while(nombre>0 && nombre<10);
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Revenir au départ

                          × 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