Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme de compilation dans le TP1

"syntax error at end of input"

Sujet résolu
    25 mai 2006 à 19:48:45


    Bonjour!!

    Voilà je suis débutante en programmation (oui bon je sais ça vous vous en doutiez!), et dans le cours sur le C je suis arrivée au TP1.
    J'ai réussi les premiers exercices sans problème mais maintenant que j'essaie d'ajouter le choix du nombre de joueur Dev-c++ m'indique une erreur que je n'ai encore jamais eu!

    D'aprés lui tout mon code est bon SAUF la dernière ligne.

    aprés:

      system("PAUSE");     
      return 0;
    }



    dev-c++ me souligne la ligne de l'} et m'écrit en bas: " syntax error at end of input"

    je ne comprends pas ce que cela peut bien vouloir dire.
    J'ai vérifié plusieurs fois mes ouverture et fermeture de {} et je n'en ai pas oublié!

    j'espère que mes quelques explications suffisent, merci en tout cas si vous avez quelques idées pour résoudre mon problème!


    PS: désolée si le problème a déjà été traité dans un autre sujet, j'avoue ne pas avoir eu la force de vérifier les 90 pages! Pardon, Pardon!
    • Partager sur Facebook
    • Partager sur Twitter
      25 mai 2006 à 20:10:53

      salut, mais des lignes vides a la fin, je crois que c'est ca. et utilise autre chose que dev :p
      • Partager sur Facebook
      • Partager sur Twitter
        25 mai 2006 à 20:24:20


        Merci d'avoir répondu si vite zero_atchoum! :)

        Mais malheureusement non, ce n'est pas ça! :(
        Penses-tu que cela peut être une erreur dans mon code d'avant?
        Parce que cela m'étonne quand même d'avoir un problème avec
        des lignes que je n'ai même pas moi même écrites!!!

        Bon je vais continuer à chercher mais quoi qu'il en soit merci pour l'aide!
        (et pour ce qui est d'utiliser autre chose que dev je vais essayer de m'y mettre! ;) )
        • Partager sur Facebook
        • Partager sur Twitter
          25 mai 2006 à 20:28:22

          Met tout ton code, ce sera mieux.
          • Partager sur Facebook
          • Partager sur Twitter
            25 mai 2006 à 20:30:20

            Celà veut dire que tu as ouvert une accolade quelque part dans ton code, sans la refermer après ;)
            • Partager sur Facebook
            • Partager sur Twitter
              25 mai 2006 à 20:38:15


              Merci pour vos réponses :), mais je ne vois pas ou j'ai oublié de refermer.
              (même si vous devez sans doute avoir raison bien sûr ^^ !)
              Je vous laisse juger par vous-mêmes...

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

              int main ( int argc, char** argv )
              {
                  int continuerPartie = 1;
                  do/* boucle pr recommencer la partie*/
                  {
                 
                  long nombreDeJoueurs = 0;   
                  while (nombreDeJoueurs != 1 || 2)
                  {
                  printf("Choississez le nombre de joueurs:\n");
                  printf("1. 1 joueur.\n");
                  printf("2. 2 joueurs.\n");
                  scanf("%ld", &nombreDeJoueurs);
                  }
                 
                  switch (nombreDeJoueurs)
                      case 1:
                       {
                           long nombreMystere =0, nombreChoisit =0, nombreDeCoup =0;
                           const long MAX = 100, MIN = 1;
                           srand(time(NULL));
                           nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                       break;
                      case 2:
                       {
                           printf("Joueur1: Choissisez un nombre entre 1 et 100:");
                           scanf("%ld", &nombreChoisit);
                       break;
                      Default:
                           printf("Veuillez entrer un chiffre parmi les 2 proposés.\n");
                       break;
              }
                 
                  printf("J'ai choisit un nombre compris entre 0 et 100.\n");

                  do
                  {
                      printf("Quel est le nombre ? ");
                      scanf("%ld", &nombreChoisit);

                      // On compare le nombre choisit avec le nombre mystère

                      if (nombreMystere > nombreChoisit)
                          printf("C'est plus !\n\n");
                      else if (nombreMystere < nombreChoisit)
                          printf("C'est moins !\n\n");
                      else
                          printf ("Bravo, vous avez trouve le nombre en %ld coups"
                          "!!!\n\n", nombreDeCoup);
                          printf("Voulez-vous recommencer une partie?\n");
                          printf("1.Oui\n2.Non\n");
                          scanf("%ld", &continuerPartie);
                  } while (nombreChoisit != nombreMystere);

              }while (continuerPartie != 2);/*fin de boucle pr recommencer le jeu*/


                  system("PAUSE");
                  return 0;

              }
              • Partager sur Facebook
              • Partager sur Twitter
                25 mai 2006 à 20:46:44

                Le problème est dans ton switch:
                switch (nombreDeJoueurs){
                        case 1:
                             long nombreMystere =0, nombreChoisit =0, nombreDeCoup =0;
                             const long MAX = 100, MIN = 1;
                             srand(time(NULL));
                             nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                         break;
                        case 2:
                             printf("Joueur1: Choissisez un nombre entre 1 et 100:");
                             scanf("%ld", &nombreChoisit);
                         break;
                        Default:
                             printf("Veuillez entrer un chiffre parmi les 2 proposés.\n");
                         break;
                }
                • Partager sur Facebook
                • Partager sur Twitter
                  25 mai 2006 à 20:47:36

                  Zero_Atchoum a normalement raison.
                  Essaies de rajouter deux ou trois retours à la ligne à la toute fin de ton fichier ( après le dernier } quoi ) puis recompile sa devrait normalement marcher
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 mai 2006 à 20:55:45

                    non impossible, ça ne marche pas...
                    mais mon code est un peu (beaucoup) bancal.
                    je vais essayer de le reprendre logiquement et peut-être que cela marchera...merci quand même!


                    Pour ce qui est du switch j'ai réessayer avec ton code seb13, mais il m'a alors indiqué qu'il y avait une erreur devant ma variable long etc... et que celle-ci n'avait encore été jamais déclarée.
                    Chose logique vu que j'étais justement en train de la déclarer! :lol:

                    est-ce mon code qui est entièrement faux? :euh:

                    Je veux dire est-ce que je me suis trompée dans l'organisation de mes commandes? On ne peut peut-être pas déclarer de variable dans une condition...

                    AAAh!!! J'ai le cerveau retourné à force d'essayer toutes les possibilités!!! bon ce n'est pas grave! merci pour votre aide!

                    seydjinn.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 mai 2006 à 21:51:24

                      Referme l'incolade apres le break de case 1. De plus c'est inutile de mette des incolades dans les "case"s.
                      Et sinon quand le compilateur marque " error of end of input" cela veut dire que tu as oublié de refermer une incolade. Comme ça tu sauras la prochaine fois.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        26 mai 2006 à 8:22:57

                        Le C est sensible à la casse! donc le Default est pas bon! c'est default!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 mai 2006 à 9:55:10

                          Citation : king92world

                          Referme l'incolade


                          accolade...
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Music only !
                            26 mai 2006 à 14:19:37


                            Ca y est mon code marche!!!
                            Finalement il semble bien que c'était un problème d'accolades mal fermées.
                            Mais pour que mon code marche j'ai du en rajouter (je parle des accolades) lorsque je déclarait une variable pour la première fois dans le "case 1" de mes switch.

                            Bon j'avoue ne pas avoir trés bien compris pourquoi (Oui je sais honte sur moi! La fille qui ne cherche pas à comprendre et se contente de voir si ça marche... :euh::( ) mais le fait demeure: CA MARCHE!!

                            Je vous remercie tous pour votre aide et je mets mon code fini (nombre de joueurs + choix du niveaux) pour ceux qui rencontreraient le même type de problème que moi! ^^

                            merci encore!!!
                            seydjinn.


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

                            int main ( int argc, char** argv )
                            {
                                int continuerPartie = 1;
                               
                                do/* boucle pr recommencer la partie*/
                                {
                                long nombreDeJoueurs = 0;   
                               
                                 while (nombreDeJoueurs != 1 && nombreDeJoueurs != 2)
                               {   
                                printf("Choississez le nombre de joueurs:\n");
                                printf("1. 1 joueur.\n");
                                printf("2. 2 joueurs.\n");
                                scanf("%ld", &nombreDeJoueurs);
                                }
                               
                                long nombreMystere =0, nombreChoisit =0, nombreDeCoup =0;
                                long niveauChoisit =0;
                                   
                                switch (nombreDeJoueurs){/*Je veux que le switch traite le cas des 2
                                manières différentes de choisir le nb mystère et c'est tt. cad qu'en
                                quittant les accolades on passe a l'étape jeu, et non pas traité tout le
                                jeu ds chaque cas.*/

                                    case 1 :         
                                       while (niveauChoisit != 1 && niveauChoisit!= 2 && niveauChoisit != 3)
                                      {
                                       printf("Choississez un niveau de difficulte:\n");
                                       printf("1. Facile (entre 1 et 100).\n");
                                       printf("2. Moyen (entre 1 et 1 000).\n");
                                       printf("3. Dur (entre 1 et 10 000).\n");
                                       scanf("%ld", &niveauChoisit);
                                        }
                                     
                                      switch (niveauChoisit){
                                         case 1:                 
                                      {long nombreMystere =0, nombreChoisit =0, nombreDeCoup =0;}
                                         long nombreMaximum = 100, nombreMinimum = 1;
                                         srand(time(NULL));
                                         nombreMystere = (rand() % (nombreMaximum - nombreMinimum + 1)) + nombreMinimum;
                                         printf("J'ai choisit un nombre compris entre 0 et 100.\n");
                                         break;
                                         
                                         case 2:
                                      {long nombreMystere =0, nombreChoisit =0, nombreDeCoup =0;}
                                         nombreMaximum = 1000, nombreMinimum = 1;
                                         srand(time(NULL));
                                         nombreMystere = (rand() % (nombreMaximum - nombreMinimum + 1)) + nombreMinimum;
                                         printf("J'ai choisit un nombre compris entre 0 et 1000.\n");
                                         break;
                                         
                                         case 3:
                                      {long nombreMystere =0, nombreChoisit =0, nombreDeCoup =0;}
                                         nombreMaximum = 10000, nombreMinimum = 1;
                                         srand(time(NULL));
                                         nombreMystere = (rand() % (nombreMaximum - nombreMinimum + 1)) + nombreMinimum;
                                         printf("J'ai choisit un nombre compris entre 0 et 10000.\n");
                                         break;
                                               }
                                               
                                     break;
                                    case 2 :
                                      {long niveauChoisit =0;}
                                       while (niveauChoisit != 1 && niveauChoisit!= 2 && niveauChoisit != 3)
                                      {
                                       printf("Choississez un niveau de difficulte:\n");
                                       printf("1. Facile (entre 1 et 100).\n");
                                       printf("2. Moyen (entre 1 et 1 000).\n");
                                       printf("3. Dur (entre 1 et 10 000).\n");
                                       scanf("%ld", &niveauChoisit);
                                        }
                                        switch (niveauChoisit){
                                           case 1:
                                              printf("Joueur1: Choissisez un nombre entre 1 et 100:");
                                              scanf("%ld", &nombreMystere);
                                              printf("\nJ'ai choisit un nombre compris entre 0 et 100.\n");
                                              break;
                                             
                                           case 2:
                                              printf("Joueur1: Choissisez un nombre entre 1 et 1000:");
                                              scanf("%ld", &nombreMystere);
                                              printf("\nJ'ai choisit un nombre compris entre 0 et 1000.\n");
                                              break;
                                             
                                           case 3:
                                              printf("Joueur1: Choissisez un nombre entre 1 et 10000:");
                                              scanf("%ld", &nombreMystere);
                                              printf("\nJ'ai choisit un nombre compris entre 0 et 10000.\n");
                                              break;
                                              }//fin du switch sur les niveaux
                                                   }//fin du switch sur le choix du nombre de joueur.
                               
                                do//boucle du jeu a proprement parler.
                                {
                                    printf("Quel est le nombre ? ");
                                    scanf("%ld", &nombreChoisit);
                                    nombreDeCoup++;/*pr savoir le nb de tentative au bout duquel
                                         le joueur a trouvé le nb*/

                                           
                                    // On compare le nombre choisit avec le nombre mystère

                                    if (nombreMystere > nombreChoisit)
                                         printf("C'est plus !\n\n");
                                    else if (nombreMystere < nombreChoisit)
                                         printf("C'est moins !\n\n");
                                    else
                                       {
                                        printf ("Bravo, vous avez trouve le nombre en %ld coups"
                                        "!!!\n\n", nombreDeCoup);
                                        printf("Voulez-vous recommencer une partie?\n");
                                        printf("1.Oui\n2.Non\n");
                                        scanf("%ld", &continuerPartie);
                                        }
                                } while (nombreChoisit != nombreMystere);

                            }while (continuerPartie != 2);/*fin de boucle pr recommencer le jeu*/

                                system("PAUSE");
                                return 0;
                            }


                            • Partager sur Facebook
                            • Partager sur Twitter

                            Probleme de compilation dans le TP1

                            × 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