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
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.
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.
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é.
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
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.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)