Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2478 connectés 

 


Dernière réponse
Sujet : [C] Sortie formatée des entiers (%.3d par exemple)
_john_doe_ Merci@tous.
 
:jap:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
_john_doe_ Merci@tous.
 
:jap:
antp 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. 1
  2.    2
  3. ...
  4.    9
  5.   10
  6. ...
  7. 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]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)