bonjour à tous,
j'aimerai connaitre la signification des caractères de la ligne de code suivante
printf ("B:%4d %10f\n",n,x); merci d'avance pour vos réponses.
-----
bonjour à tous,
j'aimerai connaitre la signification des caractères de la ligne de code suivante
printf ("B:%4d %10f\n",n,x); merci d'avance pour vos réponses.
Il faut te renseigner sur les caractères de formatage de la fonction printf en C.
En gros, si n = 3 et f=2.35, ça va afficher:
%d c'est pour afficher sous forme de nombre entier, %4d c'est pareil mais en réservant 4 caractères pour l'affichage, avec une justification à droite.Code:B: 3 2.35
Idem pour %f qui affiche sous forme de valeur décimale (flottant)
J'ajouterai que le B: est transcrit tel quel (voir l'exemple de Jack) et que le \n de la fin signifie "fin de ligne".
Si on ne met pas \n, le prochain appel à printf écrira sur la même ligne.
Le \n n'est pas spécifique à printf, c'est la façon de noter un retour chariot dans une chaîne de caractère.
Quelques descriptions détaillées de printf :
http://www.linux-france.org/article/man-fr/man3/printf-3.html
http://alain.dancel.free.fr/c/c60_10.htm
merci pour les réponses.
c'est x=2.35 ou f=2.35?
lorsque je compile ma ligne de code avec x=34.5678 j'obtiens 34.7799 j'ai du mal à comprendre cette réponse vu que l'on me dit que 10f correspond à coder en réservant 10 caractères.
A mon avis, tu as mal recopié ce qui était affiché. Ce n'est pas 34.7799 mais 34.567799 qui doit être affiché.
Dans ce cas, c'est tout simplement parce que 34.5678 n'est pas codable dans le format des nombres flottants. La valeur la plus proche est 34.567798614501953, donc l'affichage qui est par défaut de 6 chiffres derrière la virgule arrondit à 34.567799
donc 10f correspond à 6 chiffre après la virgule?
Non, il faudrait lire la doc dont chanur t'a donné les liens. On peut lire dans la doc de man:, ce que je citais dans mon message précédent.Si la précision n'est pas indiquée, l'affichage se fera avec 6 décimales.
%10f indique que l'affichage occupera au moins 10 caractères en incluant le point décimal. Tu aurais pu faire quelques essais pour t'en rendre compte.
le problème avec cette documentation c'est qu'il n'y as pas beaucoup d'exemple c'est pourquoi j'aimerai savoir la signification de cette ligne de code printf("%8.*f",n,x);
L'expérience, rien de vaut l'expérience !
Il faut tester avec diverses valeurs...
Avec l'appuie de la doc et l'analyse des résultats tu devrais vite comprendre.
Bon courage.
lorsque je compile la ligne de code suivanterintf("%12.4e",x); j'obtiens 1.2346e+010 je ne comprend pas la signification de ce résultat.
cordialement.
???
C'est de la notation scientifique: 1.2346e+010 = 1.2346.10+10 (e signifie exposant)