Sortie formatée des entiers (%.3d par exemple) [C] - Programmation
Marsh Posté le 24-02-2002 à 14:44:57
Moi je ferais simplement: printf("%d", x);
Le .3 veut peut-être dire d'afficher 3 chiffres.
Marsh Posté le 24-02-2002 à 14:58:51
je dirais %-3.3d
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 24-02-2002 à 16:16:25
:-\
Ca marche pas, ça me fait exactement le même affichage...
HEEEEEEEEEEEEEEEEEEEEEEEEELP
Marsh Posté le 24-02-2002 à 17:26:08
même avec le - ?
et si tu mets juste %-3d ?
Citation : % [flags] [width] [.prec] [F|N|h|l|L] type_char |
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 13-03-2002 à 19:38:59
Alload a écrit a écrit : Moi je ferais simplement: printf("%d", x); Le .3 veut peut-être dire d'afficher 3 chiffres. |
Pareil !!!
Marsh Posté le 13-03-2002 à 23:38:53
bjone a écrit a écrit : %3d devrait suffire le . est plus pour les flottants. |
la question de base était pour mettre des espaces plutot que des chiffres... %3 donnera 005 pour x = 5... d'où ma suggestion de mettre un - comme expliqué dans l'aide de Borland... mais je crois que l'auteur du topic l'a abandonné.
c'est procat qui a remonté un vieux topic.
Marsh Posté le 15-03-2002 à 11:19:51
D'après mes habitudes (autodidactes), il faut mettre autant d'espaces avant le champ qu'on veut " %d" fait qu'il y a toujours deux espaces avant les caractères.
Si on fait "%d%d", tout est collé, si c'est "%d %d", y a 4 espaces entre champs numériques. On peut aussi "moduler" les % pour avoir ce qu'on veut. L'espace est pris comme un espace.
On peut aussi mettre "%d%s%d" avec, en regard de %s, une chaîne contenant le nombre d'espaces qu'on veut (ça évite de taper 25 espaces dans le champ : listings trop larges )....
Marsh Posté le 15-03-2002 à 11:25:24
si t'as un nombre à 2 chiffres ton " %d" va afficher 2 espaces au lieu d'un
je vois pas pourquoi mon truc du - vous convient pas, c'est comme ça en C standard et chez moi ça marche
Marsh Posté le 15-03-2002 à 11:58:06
printf("%3d", num); ca marche ca... ca calle le nombre sur la droite...
Code :
|
si on avait %-3d ca callerai sur la droite et ca remplirai le reste par les espaces
Marsh Posté le 15-03-2002 à 13:52:28
après test il semblerait que %3d fonctionne en effet (bizarre il me semblait qu'il mettait des 0 plutot que des espaces)
et le %-3d aligne a gauche, ce qui est très bizarre car ce n'est pas ce qui est décrit dans l'aide...
bon bhen je suis bien content de faire du Pascal plutôt que du C en temps normal
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 15-03-2002 à 14:21:03
antp a écrit a écrit : après test il semblerait que %3d fonctionne en effet (bizarre il me semblait qu'il mettait des 0 plutot que des espaces) et le %-3d aligne a gauche, ce qui est très bizarre car ce n'est pas ce qui est décrit dans l'aide... |
Bah, dans la MSDN ils le disent !
[jfdsdjhfuetppo]--Message édité par El_Gringo--[/jfdsdjhfuetppo]
Marsh Posté le 15-03-2002 à 14:29:07
ha non je me suis trompé, %3d c'est bien des espaces
et j'ai mal lu: right padded, et non pas right-aligned.
rhaaa ...
et puis quelle idée d'aller rechercher ce vieux topic aussi
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Marsh Posté le 24-02-2002 à 14:41:04
Supposons que j'ai une variable de type entier x=5
Comment obtenir " 5" au lieu de "005" ?
(En clair, pour remplacer les zéros par des espaces)
Ps : Je fais printf("%.3d", x);
[jfdsdjhfuetppo]--Message édité par _john_doe_--[/jfdsdjhfuetppo]