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]
El_gringo
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]
antp
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 :D
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Suri
printf("%3d", num); ca marche ca... ca calle le nombre sur la droite...
Code :
1
2
...
9
10
...
100
si on avait %-3d ca callerai sur la droite et ca remplirai le reste par les espaces
antp
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
Carbon_14
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 :D )....
antp
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.
bjone
%3d devrait suffire le . est plus pour les flottants.
Procat
Alload a écrit a écrit :
Moi je ferais simplement: printf("%d", x);
Le .3 veut peut-être dire d'afficher 3 chiffres.
Pareil !!!
antp
même avec le - ?
et si tu mets juste %-3d ?
Citation :
% [flags] [width] [.prec] [F|N|h|l|L] type_char
width:
n = At least n characters are printed. If the output value has less than n characters, the output is padded with blanks (right-padded if - flag given, left-padded otherwise).
0n = At least n characters are printed. If the output value has less than n characters, it is filled on the left with zeros.
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
_john_doe_
:-\
Ca marche pas, ça me fait exactement le même affichage...
HEEEEEEEEEEEEEEEEEEEEEEEEELP :(
_john_doe_
Merci, je vais essayer ça :)
:hello:
antp
je dirais %-3.3d
[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]
Alload
Moi je ferais simplement: printf("%d", x);
Le .3 veut peut-être dire d'afficher 3 chiffres.
_john_doe_
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]