Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'erreur avec Code::Blocks

Pourquoi y a-t-il une erreur ??

Sujet résolu
    16 avril 2006 à 20:11:37

    J'ai un gros problème : j'utilise CODE::Blocks comme IDE et sur certains programmes, il me dit "sytax error at end of input". Je croyais, au début, qu'il y avait une ligne en trop avant ou après, ou que j'avais mis un caractère qu'il ne fallait pas. Mais ça ne marche toujours pas. Il m'indique que la ligne où il y a l'erreur est la dernière ligne (ou avant dernière quand je laisse une ligen vide à la fin). c'est à dir que l'erreur se situe sur l'accolade finale de la fonction main.
    Que puis-je faire pour rézoudre cette erreur, et pourquoi me dit-il qu'il y a une erreur ??
    SVP aidez moi parce que je ne peu (presque) plus rien faire
    Pour ceux qui m'avaient demandé mon code, le voici :



    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_image.h>
    #include "inclu.h"

    int main(int argc, char *argv[])
    {

        SDL_Surface *ecran = NULL;
        SDL_Surface *sapin = NULL;
        SDL_Rect positionSapin;
        SDL_Event event;
        int continuer = 0;


        positionSapin.x = 50;
        positionSapin.y = 50;

        SDL_Init(SDL_INIT_VIDEO);

        ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_RESIZABLE | SDL_DOUBLEBUF);
        SDL_WM_SetCaption("Gestion des évènements en SDL", NULL);

        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 140, 111, 81));
        SDL_Flip(ecran);

        sapin = IMG_Load("sapin.png");
        SDL_BlitSurface(sapin, NULL, ecran, &positionSapin);

        while(continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.key.keysym.sym)
            {
                case SDLK_UP:
                positionSapin.y--;
                break;

                case SDLK_DOWN:
                positionSapin.y++;
                break;

                case SDLK_LEFT:
                positionSapin.x--;
                break;

                case SDLK_RIGHT:
                positionSapin.x++;
                break;
            }

            switch(event.type)
            {
                case SDL_QUIT:
                continuer = 0;
                break;
            }


        SDL_FreeSurface(sapin);
        pause();

        SDL_Quit();

        return EXIT_SUCCESS;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2006 à 20:13:27

      while(continuer)
          {


      Il faut penser à refermer l'accolade ouverte à un moment :-°
      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2006 à 22:34:26

        Citation : chuckman

        J'ai un gros problème : j'utilise CODE::Blocks


        Alors utilise l'indenteur :

        Plugins / Source code formatter (Astyle)


        #include <stdlib.h>
        #include <stdio.h>
        #include <SDL/SDL.h>
        #include <SDL/SDL_image.h>
        #include "inclu.h"

        int main(int argc, char *argv[])
        {
           SDL_Surface *ecran = NULL;
           SDL_Surface *sapin = NULL;
           SDL_Rect positionSapin;
           SDL_Event event;
           int continuer = 0;

           positionSapin.x = 50;
           positionSapin.y = 50;

           SDL_Init(SDL_INIT_VIDEO);

           ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_RESIZABLE | SDL_DOUBLEBUF);
           SDL_WM_SetCaption("Gestion des évènements en SDL", NULL);

           SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 140, 111, 81));
           SDL_Flip(ecran);

           sapin = IMG_Load("sapin.png");
           SDL_BlitSurface(sapin, NULL, ecran, &positionSapin);

           while (continuer)
           {
              SDL_WaitEvent(&event);
              switch (event.key.keysym.sym)
              {
              case SDLK_UP:
                 positionSapin.y--;
                 break;

              case SDLK_DOWN:
                 positionSapin.y++;
                 break;

              case SDLK_LEFT:
                 positionSapin.x--;
                 break;

              case SDLK_RIGHT:
                 positionSapin.x++;
                 break;
              }

              switch (event.type)
              {
              case SDL_QUIT:
                 continuer = 0;
                 break;
              }


              SDL_FreeSurface(sapin);
              pause();

              SDL_Quit();

              return EXIT_SUCCESS;
           }

        Et là, tu vois qu'il manque une }. Le tout est maintenant de savoir où. A toi de vérifier tes blocs et autres structures de code. Pur une {, il doit y avoir une }.
        Tu peux utiliser le fait que l'éditeur montre les paires : (), [], {}.
        Si tu ne l'as pas déjà fait, tu peux aussi activer une option de l'éditeur qui montre les barres d'indentations :

        Settings / Editor

        Onglet 'General'

        Dans 'Indent options', cocher 'Show indentation guides'
        • Partager sur Facebook
        • Partager sur Twitter
        Music only !
          17 avril 2006 à 10:25:07

          merci mais je n'avais pas su comment faire pour supprimer le message que j'avais envoyé. Javais remarqué pourqoi ça plantait.
          Merci quand même
          • Partager sur Facebook
          • Partager sur Twitter
            17 avril 2006 à 10:27:12

            Citation : chuckman

            merci mais je n'avais pas su comment faire pour supprimer le message que j'avais envoyé. Javais remarqué pourqoi ça plantait.
            Merci quand même


            Peu importe, j'espère que tu as quand même lu mon message, parce qu'il indique des façons de procéder pour lutter contre ce genre de bugs.

            • Partager sur Facebook
            • Partager sur Twitter
            Music only !

            Problème d'erreur avec Code::Blocks

            × 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