Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question et problème d'un débutant - Boucle

Je cherche à faire une boucle de la fin à un endroit donné de mon code (pas au début)

    7 mai 2008 à 21:28:46

    Bonjour,

    J'éspère que vous allez bien?!

    J'ai depuis hier commencé la programmation en C++ grace au tutoriel de Mateo que je remercie beaucoup!

    J'ai fais ce petit code pour tester un peu mes nouvelles connaissances et j'ai une question a vous posez:

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main(int argc, char *argv[])
    {
    long age = 0;
    printf("Quel est mon prenom ?\n\n ");
    scanf("Jeremy");
    printf("\n\nAh ! Vous me connaissez!?\n\n");
    // <<========================================================== (La fameuse flèche)
    printf("Quel information veux tu sur moi?\n\n");
    printf("1. Le nom de ma petite amie\n2. Le nom de ma soeur\n3. Le nom frere\n4. L'age que j'ai\n5. Ma localisation\n\n");
    scanf("%ld", &age);
    if (age == 1)
    {
    printf("\n\nEmeline!\n\n");
    }
    else if (age == 2)
    {
    printf("\n\nLauralie!\n\n");
    }
    else if (age == 3)
    {
    printf("\n\nElvyn!\n\n");
    }
    else if (age == 4)
    {
    printf("\n\n14 ans!\n\n");
    }
    else if (age == 5)
    {
    printf("\n\nDakar au Senegal!\n\n");
    }
    else
    {
    printf("\n\nErreur Syntaxe\n\n");
    }
    // J'aimerais qu'ici je puisse faire un retour à la flèche plus haut
    system("PAUSE");
    return 0;
    }


    Est-il possible de faire un retour à un endroit donné du code?

    J'aimerais faire un retour après :
    {
    printf("\n\nErreur Syntaxe\n\n");
    }


    Qui renvoie à après:
    printf("\n\nAh ! Vous me connaissez!?\n\n");

    En esperant que ma demande est explicite et que vous saurez m'apporté l'aide nécéssaire!

    Merci!
    • Partager sur Facebook
    • Partager sur Twitter
      7 mai 2008 à 22:15:10

      Bonsoir,

      Tu sais qu'il existe des balises qui rendent ton code bien plus présentable ?

      comme ceci :

      #include <cstdlib>
      #include <iostream>
      
      using namespace std;
      
      int main(int argc, char *argv[])
      {
      long age = 0;
      printf("Quel est mon prenom ?\n\n ");
      scanf("Jeremy");
      printf("\n\nAh ! Vous me connaissez!?\n\n");
      // <<========================================================== (La fameuse flèche)
      printf("Quel information veux tu sur moi?\n\n");
      printf("1. Le nom de ma petite amie\n2. Le nom de ma soeur\n3. Le nom frere\n4. L'age que j'ai\n5. Ma localisation\n\n");
      scanf("%ld", &age);
      if (age == 1)
      {
      printf("\n\nEmeline!\n\n");
      }
      else if (age == 2)
      {
      printf("\n\nLauralie!\n\n");
      }
      else if (age == 3)
      {
      printf("\n\nElvyn!\n\n");
      }
      else if (age == 4)
      {
      printf("\n\n14 ans!\n\n");
      }
      else if (age == 5)
      {
      printf("\n\nDakar au Senegal!\n\n");
      }
      else
      {
      printf("\n\nErreur Syntaxe\n\n");
      }
      // J'aimerais qu'ici je puisse faire un retour à la flèche plus haut
      system("PAUSE");
      return 0;
      }
      


      Enfin...

      Le gros problème de ton code c'est que tu mélanges le C et le C++ :

      en c on trouve les commandes printf() et scanf(), pas en c++.
      cependant tu inclus les headers standards du C++...

      Pour faire ta boucle, il suffit de faire un "while(condition){/*commandes à répèter*/}"

      Voici un exemple de code qui compile :

      #include <cstdlib>
      #include <iostream>
      #include <String>/*J'ai rajouté cette lib pour gèrer les chaines de caractères..
      C'est bien plus simple...*/
      
      using namespace std;
      
      int main(int argc, char *argv[])
      {
      string nom="";
      int age = 0;// un int est largement suffisant...
      /*
      cout est la commande pour le flux sortant...
      */
      cout << "Quel est mon prenom ?\n" << endl;
      /*
      cin est pour le flux entrant;
      regarde bien ces exemples...
      */
      cin >> nom;
      
      while ( nom != "Jeremy")//une première boucle...
      {
          cout << "rate !" << endl;
          cout << "Quel est mon prenom ?\n" << endl;
          cin >> nom;
      }
      cout << "\n\nAh ! Vous me connaissez!?\n"<< endl;
      
      bool condition = true;
      while (condition)// et la boucle dont tu as parlé...
      {
          cout << "Quel information veux tu sur moi?\n\n"<< endl;
          cout << "1. Le nom de ma petite amie\n2. Le nom de ma soeur\n3. "
              << "Le nom frere\n4. L'age que j'ai\n5. Ma localisation\n"
              << "6. Tu veux me quitter ?\n"<< endl;//<-----
          cin >> age;
          if (age == 1)
          {
          cout << "\n\nEmeline!\n"<< endl;
          }
          else if (age == 2)
          {
          cout << "\n\nLauralie!\n"<< endl;
          }
          else if (age == 3)
          {
          cout << "\n\nElvyn!\n"<< endl;
          }
          else if (age == 4)
          {
          cout << "\n\n14 ans!\n"<< endl;
          }
          else if (age == 5)
          {
          cout << "\n\nDakar au Senegal!\n"<< endl;
          }
          else if (age == 6)//<-----
          {//<-----
              condition = false;//<-----
          }//<-----
          else
          {
          cout << "\n\nErreur Syntaxe\n"<< endl;
          }
          /* ici tu dois insérer le code de modification de ta variable "continuer"
          ou alors ta boucle sera infinie
          J'ai testé une solution possible au niveau des //<-----*/
      }//fin de la boucle
      system("PAUSE");
      return 0;
      }
      



      [edit] J'oubliais, le nom "age" n'est pas très bien pensé pour cette variable...
      "choix" ne serait-il pas mieux adapté ?
      [/edit]
      • Partager sur Facebook
      • Partager sur Twitter
        7 mai 2008 à 23:14:35

        Merci Beaucoup Layus pour cette info, j'ai du mal lire le tuto de matheo :D
        J'utilise Dev-C++ 4.9.9.2 et quand je veux compiler voici le "log de compilation":

        Citation : Log de Compilation


        Compilateur: Default compiler
        Building Makefile: "C:\Dev-Cpp\Makefile.win"
        Exécution de make...
        make.exe -f "C:\Dev-Cpp\Makefile.win" all
        g++.exe -c TEST.cpp -o TEST.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"

        g++.exe main.o TEST.o -o "BoxLog.exe" -L"C:/Dev-Cpp/lib"

        TEST.o(.text+0x100):TEST.cpp: multiple definition of `main'
        main.o(.text+0x100):main.cpp: first defined here
        collect2: ld returned 1 exit status

        make.exe: *** [BoxLog.exe] Error 1

        Exécution terminée



        Sais tu d'où cela vient? Merci encore et j'attends l'aide précieuse d'une autre ou meme personne pour ce nouveau problème!

        Merci!
        • Partager sur Facebook
        • Partager sur Twitter
          8 mai 2008 à 13:21:35

          Tu n'aurais pas créé un autre fichier dans ton projet nommé TEST.cpp par hasard où tu aurais utilisé la fonction main() également?
          • Partager sur Facebook
          • Partager sur Twitter
            8 mai 2008 à 13:26:18

            Tu as un problème comme quoi tu as plusieurs fois la fonction "main()"

            De plus on dirait que tu as deux fichers dans ton projet :
            1. "main.cpp"
            2. "TEST.cpp"

            C'est vraiment voulu ou tu as oublié de créer UN SEUL répertoire par projet ?
            Je suppose qu'il y a une autre fonction "main()" dans le ficher TEST et que ton compilateur ne sait pas laquelle choisir...

            Dis moi quoi,

            Layus
            • Partager sur Facebook
            • Partager sur Twitter
              8 mai 2008 à 18:48:06

              Oui ca doit etre ca!
              Je dois supprimer un main()?
              Ou tout simplement le déplacer?
              Je crois avoir écrit dans le main c'est pour ca !? xD
              J'editerais pour vous dire!

              EDIT: J'ai Uninstallé et Re-Installé. Supprimer tout mes projets et j'ai collé le code. Ca marche! Merci Beaucoup!
              • Partager sur Facebook
              • Partager sur Twitter
                8 mai 2008 à 22:56:30

                N'oublie pas de mettre ton sujet en résolu !
                • Partager sur Facebook
                • Partager sur Twitter

                Question et problème d'un débutant - Boucle

                × 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