Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème pause()

Linux-Codeblocks

Sujet résolu
    11 octobre 2006 à 18:50:39

    Bonsoir à tous,
    J'utilise Codeblocks comme IDE et je suis sous linux.
    J'essay de compiler les codes du cour. Créer une fenêtre ça va, mais dès que j'utilise pause(). On m'affiche :

    Citation : Codeblocks

    main.cpp:31: erreur: «pause» was not declared in this scope
    :: === Build finished: 1 errors, 0 warnings ===


    J'ai cherché mais apparament, presnonne n'a le même problème que moi ici.
    Merci d'avance
    @++
    • Partager sur Facebook
    • Partager sur Twitter
      11 octobre 2006 à 18:53:09

      A ma connaissance, pause() n'existe pas. Il y a bien system("PAUSE"). Mais c'est uniquement pour Windows.

      Au pire, utilise getchar()
      • Partager sur Facebook
      • Partager sur Twitter
        11 octobre 2006 à 18:55:42

        Pourtant dans le cour sur la SDL, cette comande est présente :
        int main(int argc, char *argv[])
        {
            SDL_Surface *ecran = NULL, *lignes[256] = {NULL};
            SDL_Rect position;
            int i = 0;

            SDL_Init(SDL_INIT_VIDEO);

            ecran = SDL_SetVideoMode(640, 256, 32, SDL_HWSURFACE); // Hauteur de 256 pixels

            for (i = 0 ; i <= 255 ; i++)
                lignes[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, 640, 1, 32, 0, 0, 0, 0); // Allocation des 256 surfaces

            SDL_WM_SetCaption("Mon dégradé en SDL !", NULL);

            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));

            for (i = 0 ; i <= 255 ; i++)
            {
                position.x = 0; // Les lignes sont à gauche (abscisse de 0)
                position.y = i; // La position verticale dépend du numéro de la ligne actuelle
                SDL_FillRect(lignes[i], NULL, SDL_MapRGB(ecran->format, i, i, i)); // Remplissage
                SDL_BlitSurface(lignes[i], NULL, ecran, &position); // Collage
            }

            SDL_Flip(ecran);
            pause();

            for (i = 0 ; i <= 255 ; i++) // N'oubliez pas de libérer chacune des 256 surfaces !
                SDL_FreeSurface(lignes[i]);
            SDL_Quit();

            return EXIT_SUCCESS;
        }
        • Partager sur Facebook
        • Partager sur Twitter
          11 octobre 2006 à 18:59:18

          Je n'avais pas compris que tu utilisais la SDL.
          Dans ce cas, pause est en fait une fonction créée par M@teo21, dont le code est aussi donné dans le cour.
          void pause()
          {
              int continuer = 1;
              SDL_Event event;

              while (continuer)
              {
                  SDL_WaitEvent(&event);
                  switch(event.type)
                  {
                      case SDL_QUIT:
                          continuer = 0;
                  }
              }
          }

          Oublie pas le prototype ;)
          • Partager sur Facebook
          • Partager sur Twitter
            11 octobre 2006 à 19:00:01

            Salut,

            Pour commencer, le cours ne porte pas sur le C++ mais sur le C, donc je ne vois pas pourquoi ton fichier est un .cpp.

            Ensuite, où est le prototype et la définition ( pas sur du mot là ) de ta fonction pause ?
            • Partager sur Facebook
            • Partager sur Twitter
              11 octobre 2006 à 19:01:48

              Merci! Ca marche parfaitement.
              J'ai omis ce petit bout de code comme un boolzor.
              Encore merci!
              Bonne soirée :)
              • Partager sur Facebook
              • Partager sur Twitter

              Problème pause()

              × 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