Partage
  • Partager sur Facebook
  • Partager sur Twitter

system("Pause");

probleme pour le nouveau linuxien que je suis

Sujet résolu
    27 novembre 2008 à 22:46:56

    Bonjour a tous,
    Voila j' ai un probleme assez simple qui a probablement deja été traité sur le forum mais je n'ai pas reussi a trouver la solution tout seul donc je viens demander un peu d'aide :)

    Je tourne sous linux depuis peu et je me suis vite rendu compte que la commande PAUSE n'existe pas.
    Mon probleme et donc le suivant, y a t-il une methode que vous pourriez me conseiller pour obtenir le meme effet que system("PAUSE") sous linux dans un programme en C.
    J'ai deja essayé avec la fonction getchar() seule mais cela ne fonctionne pas tres bien.

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      27 novembre 2008 à 22:51:22

      Un truc dans le genre devrait marcher ..

      puts("Appuyer sur la touche \"Entrée\" pour continuer...");
        getchar();
      


      Logiquement getchar(); marche bien pour faire juste ça ... en quoi ca ne marche pas ?
      • Partager sur Facebook
      • Partager sur Twitter
        27 novembre 2008 à 23:01:26

        Oui je suis d'accord mais ca ne marche pas toujours et je ne sais pas trop pourquoi :(
        Il me semble que j 'ai des problemes quand j'ai utilisé un scanf avant ...
        Le probleme c' est qu'il me saute carrement l'etape ou je doit appuyer sur un bouton, donc le getchar() sert plus a rien
        Peu etre qu'il faudrai que je vide le buffer ... Si oui, je ne sais pas faire :-°
        • Partager sur Facebook
        • Partager sur Twitter
          27 novembre 2008 à 23:07:00

          Pour vider le buffer, c'est très simple:

          while(getchar()!='\n');
          
          • Partager sur Facebook
          • Partager sur Twitter
            27 novembre 2008 à 23:10:35

            Merci beaucoup, le probleme venait bien du buffer.
            Probleme résolu :)

            EDIT : pas encore résolu en fait ^^
            • Partager sur Facebook
            • Partager sur Twitter
              27 novembre 2008 à 23:10:53

              Citation : rocklee.gt

              Pour vider le buffer, c'est très simple:

              while(getchar()!='\n');
              


              Il est d'usage de tester egalement si getchar ne reçoit pas EOF... probablement dans le cas où un fichier est redirigé sur l'entrée standard du programme.
              De toute maniere, c'est ecrit sur le topic de la FAQ comment purger le buffer apres un scanf.
              • Partager sur Facebook
              • Partager sur Twitter
                27 novembre 2008 à 23:15:04

                Citation : mcyrb

                Il est d'usage de tester egalement si getchar ne reçoit pas EOF...



                Il faut faire
                while(getchar()!='\n');
                if(getchar()!=EOF);
                


                C' est cela?
                • Partager sur Facebook
                • Partager sur Twitter
                  27 novembre 2008 à 23:16:52

                  Non pas du tout, mais encore une fois c'est écrit dans la FAQ.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 novembre 2008 à 23:17:01

                    Si tu suis le lien qu'il a donné, il y'a la fonction toute faite ;)

                    void cleanscan(void)
                    {
                       int c;
                       do
                        {
                          c = getchar();
                        }
                        while (c != '\n' && c != EOF);
                    }
                    


                    Tu dis que ton problème n'est toujours pas résolu? Qu'est ce qui ne va pas?
                    Voilà ^^
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 novembre 2008 à 23:18:12

                      ooops la j' avais pas vu le lien :D
                      merci beaucoup, probleme résolu
                      • Partager sur Facebook
                      • Partager sur Twitter

                      system("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