Partage
  • Partager sur Facebook
  • Partager sur Twitter

Chapitre les boucles

Sujet résolu
    23 mai 2006 à 0:54:48

    salut tout le monde,

    Dans le chapitre des boucles, il y a un exemple qui dis d'écrire le chiffre 47, j'ai essayer sauf, au final à la console cela ajoute 2 fois la question.

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

    int main(int argc, char *argv[])
    {
       
       long nombre = 0;
       
      while (nombre != 47)
      {
            printf("taper le chiffre 47 ");
            scanf("%1d", &nombre);
           
            }
       
       
       
       
      system("PAUSE");     
      return 0;
    }



    ex: de la console:

    taper le chiffre 47 56
    taper le chiffre 47 taper le chiffre 47 12
    taper le chiffre 47 taper le chiffre 47 "chiffre"

    merci de votre aide :)


    • Partager sur Facebook
    • Partager sur Twitter
      23 mai 2006 à 1:01:48

      scanf("%1d", &nombre); ne consomme qu'1 chiffre. Tu as du inversé 1 et "l" L "elle".
      Du coup ici :
      printf
      tu as la main, tu tapes 56, consommation du 5
      printf
      consommation du 6 tjs dans le buffer
      printf
      et enfin tu as la main
      • Partager sur Facebook
      • Partager sur Twitter
        23 mai 2006 à 8:56:57

        Citation : Kayl

        scanf("%1d", &nombre);


        Même conclusion, mais il m'a donné des sueurs froides ce bug... J'ai pas vu le 1 (je n'ai plus 20 ans, ni même 45, mes premières lunettes...) avant de mettre un printf() de nombre dans la boucle.
        • Partager sur Facebook
        • Partager sur Twitter
        Music only !
          23 mai 2006 à 12:12:31

          J'ai enlever le 1 est ca fonctionne , merci à vous deux :)
          • Partager sur Facebook
          • Partager sur Twitter
            23 mai 2006 à 12:31:27

            Citation : le dragon 4

            J'ai enlever le 1 est ca fonctionne , merci à vous deux :)


            Ouais mais si c'est seulement %d ça peut provoquer des bugs avec un long.

            Change ton long en int ou met %ld dans ton scanf.
            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2006 à 14:27:57

              Citation : le dragon 4

              J'ai enlever le 1 est ca fonctionne , merci à vous deux :)


              Il faut pas 'enlever' le 1; il faut le remplacer par 'l' (elle) : "%ld" parce que le type de la donnée est long ('l' comme long, OK ?)

              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                23 mai 2006 à 21:12:53

                D'accord, j'avais mal compris :euh:

                j'avais confondu le 1 et le l :-°
                • Partager sur Facebook
                • Partager sur Twitter

                Chapitre les boucles

                × 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