Partage
  • Partager sur Facebook
  • Partager sur Twitter

Passage au %ld et %lf

Demandé par rz0

    5 décembre 2005 à 22:11:05

    Salut,

    J'ai mis à jour le dernier chapitre C pour inviter l'utilisateur à utiliser %ld et %lf au lieu de %d et %f (ça nous évite des soucis futurs).
    Je pense en avoir oublié aucun, signalez-moi quand même si vous voyez un %d qui traîne ;)
    • Partager sur Facebook
    • Partager sur Twitter

    If you'd like to join us, read "How do we work at OpenClassrooms"! :)

      5 décembre 2005 à 22:18:20

      Apparemment tout est okay.

      Mais pourquoi %lf, %ld, à la place de %f et %d ?

      deLux
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        5 décembre 2005 à 22:19:18

        Et à quand les mises à jour pour les scanf ? et pour les system ? Et pour les long ?

        :p

        (il me semble en effet que t'en as oublié aucun).
        • Partager sur Facebook
        • Partager sur Twitter
          5 décembre 2005 à 22:59:53

          Je post it pour quelques temps histoire que ce soit vu et écouté par les Z.
          • Partager sur Facebook
          • Partager sur Twitter
            6 décembre 2005 à 0:15:50

            quel difference et avantage
            je suis du meme avis %d et %f marche tres bien difference avec %ld
            sujet a suivre
            • Partager sur Facebook
            • Partager sur Twitter
              6 décembre 2005 à 0:21:35

              J'ai dû demander de travers ou tu m'as entendu de travers mais : Quand je disais que de rajouter l dans le specifier ne faisait pas de mal, c'était pour les float et les double, pas pour les int et les long.

              Pour résumer (et sans donner tous les détails vu que tu as l'air de vouloir simple au possible) :
              %d dans printf pour signed char et int (parmis les types présents dans ton cours)
              %ld dans printf pour long int
              %f ou %lf pour les float et les double dans printf

              Mais dans scanf :
              %hhd pour les signed char
              %d pour les int
              %ld pour les long int
              %f pour les float
              %lf pour les double

              Sans cela, ça ne marchera pas. Cela produit un comportement indéfini. Cela pourrait très bien avoir l'air normal mais ça ne l'est pas.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                7 décembre 2005 à 15:02:46

                pour les char, c'est pas %c ?
                je sais que c'est pas pour maintenant mais on pourrait rajouter %x a la liste pour les adresses

                Citation : rz0

                J'ai dû demander de travers ou tu m'as entendu de travers mais : Quand je disais que de rajouter l dans le specifier ne faisait pas de mal, c'était pour les float et les double, pas pour les int et les long.

                Pour résumer (et sans donner tous les détails vu que tu as l'air de vouloir simple au possible) :
                %d dans printf pour signed char et int (parmis les types présents dans ton cours)
                %ld dans printf pour long int
                %f ou %lf pour les float et les double dans printf

                Mais dans scanf :
                %hhd pour les signed char
                %d pour les int
                %ld pour les long int
                %f pour les float
                %lf pour les double

                Sans cela, ça ne marchera pas. Cela produit un comportement indéfini. Cela pourrait très bien avoir l'air normal mais ça ne l'est pas.

                • Partager sur Facebook
                • Partager sur Twitter
                  7 décembre 2005 à 15:36:36

                  Nan mais char est un type prévu pour des caractères donc c'est %c mais ça veut dire qu'on entre un caractère et qu'il est converti en entier.
                  signed char est un vrai type entier qui correspond à %hhd, on entre un entier et il est stocké.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    7 décembre 2005 à 15:54:09

                    Citation : rz0

                    Nan mais char est un type prévu pour des caractères donc c'est %c mais ça veut dire qu'on entre un caractère et qu'il est converti en entier.
                    signed char est un vrai type entier qui correspond à %hhd, on entre un entier et il est stocké.



                    désolé, je n'avais pas lu attentivement ton post.

                    on peut aussi ajouter le type short qui sera saisi grace au %hd.

                    en commentaire du chapitre de mateo, on peut également definir une constante grace à un #define juste apres les #include.

                    ex: #define PI 3.14
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Passage au %ld et %lf

                    × 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