Partage
  • Partager sur Facebook
  • Partager sur Twitter

A propos de getchar()...

ça sert à quoi, au juste ?

    22 décembre 2005 à 17:28:49

    Voilà... En fait, comme getchar() ; n'est pas une commande décrite dans les cours, je sais pas trop de quoi il s'agit...
    Je pensais que ça avait pour rôle de mettre en pause le programme (et qu'il fallait appuyer sur Entree pour le relancer), un peu comme system("PAUSE") ; (enfin je crois...) sous Windows (je suis sous OS X).
    Ben en fait y ' a des fois où ça marche, et d'autres pas. Et je comprend pas pourquoi...

    <question></question> Alors, je le demande, quelqu'un pourrait-il m'expliquer ce qu'est getchar() ; ?
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      22 décembre 2005 à 17:45:20

      getchar est simplement une fonction qui récupère un caractère (un seul) de l'entrée standard (le flux de données qui vient du clavier) et qui le renvoie. Vous avez pas encore vu les fonctions, mais ça veut dire que c'est ce que getchar donne comme résultat.

      Donc tu peux faire monChr = getchar(); pour récuperer un caractère.

      Maintenant, on l'utilise pour remplacer system("PAUSE") parce que ça correspond à "appuyez sur Entrée pour continuer", avec une fonction légère.

      Seulement, getchar() récupère le premier caractère qu'elle peut. Ca veut dire que lorsque tu utilises un scanf juste avant, et que celui-ci ne lit pas tout (car tu sais que les scanfs se limitent à ce que tu leur demandes, comme un entier avec %d par exemple), il laisse le saut de ligne dans le flux qui vient du clavier... et getchar() le lit aussitôt, ce qui te donne l'impression qu'il ne fait rien.
      • Partager sur Facebook
      • Partager sur Twitter
        22 décembre 2005 à 17:48:56

        OK, il semblerais en effet que mes getchars qui marchent pas sont juste après des scanf...
        En fait, ça ressemble un peu à l'histoire des :
        scanf (" %c", &lettre) ;
        avec un espace avant le %c pour pas que le "\n" d'un précédent scanf ne vienne fausser le résultat, non ?
        • Partager sur Facebook
        • Partager sur Twitter
          22 décembre 2005 à 18:06:11

          Mon pareil sur linux j'ai mis getchar() ; a la fin de mon programme pour qu'il reste ouvert mais ca marche pas a la fin du programme la console se ferme.
          Faut il rajouter quelque chose?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            22 décembre 2005 à 18:06:59

            Nan faut juste ne pas utiliser scanf.

            Vous serez en mesure de faire des fonctions de remplacement dans la suite du tuto, un peu de patience.
            • Partager sur Facebook
            • Partager sur Twitter
              22 décembre 2005 à 18:08:12

              ...Ou deux getchar() à la suite, ça marche.
              • Partager sur Facebook
              • Partager sur Twitter
                22 décembre 2005 à 18:44:15

                c'est bourrin mais pourquoi pas 2 getchar()
                !!!!
                :)
                • Partager sur Facebook
                • Partager sur Twitter
                  22 décembre 2005 à 21:03:12

                  Tu peux aussi te faire ta fonction pause !
                  qui vérifie que getchar()=' ' par exemple !
                  • Partager sur Facebook
                  • Partager sur Twitter

                  A propos de getchar()...

                  × 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