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

 


Dernière réponse
Sujet : Comment afficher l'heure en C ?? :)
gilou Je viens d'ailleurs de lire dans la doc VC++ que le flag 0 couple au format %d est sans effet. Pour une fois que chez Bilou, ils suivent les recommendations d'un standard...
A+,

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
gilou Je viens d'ailleurs de lire dans la doc VC++ que le flag 0 couple au format %d est sans effet. Pour une fois que chez Bilou, ils suivent les recommendations d'un standard...
A+,
gilou Oui, j'ai tape un peu trop vite, presse par une reeunion qui demarrait.
Ce genre de formattage est assez bien documente dans l'indispensable "C traps and pitfalls" de Koenig, qui figure en bonne place sur le bureau de tout programmeur C.
Ce qu'il faut savoir:
%nd ==> comme %d mais avec au plus n chiffres (n est appele la largeur [width])
%.md ==> comme %d mais avec au moins m chiffres (eventuellement avec du padding par 0) (m est appele la precision)
%n.md (ou n>=m) comme %d mais avec au moins m chiffres et au plus n
(pour des formats autres que %d, largeur et precision peuvent avoir des effets differents: par exemple, avec un %f la precision indique le nombre de chiffres apres la virgule, avec %g, c'est le nombre de chiffres signicatifs...)
Donc dans le cas present,  
printf("%.2d:%.2d:%.2d",heure,minute,seconde);  
(ou  eventuellement printf("%2.2d:%2.2d:%2.2d",heure,minute,seconde); ) est la bonne reponse.
Biface,  
printf("%02d:%02d:%02d",heure,minute,seconde);  est acceptable, mais il repose sur le flag 0 qui est "deprecated" depuis plus de 10 ans. A priori, les valeurs de flag recommendees sont: SPACE - + #. La recommendation est d'utiliser la precision plutot que le flag 0.
 
A+,

 

[edit]--Message édité par gilou--[/edit]

slashp Merci Beaucoup
BifaceMcLeOD Voire

Code :
  1. printf("%02d:%02d:%02d", heure, minute, seconde);

si tu veux mettre des zéros devant les nombres à 1 chiffre (exemple "02" au lieu de " 2" ).

 

[edit]--Message édité par BifaceMcLeOD--[/edit]

gilou printf("%2d:%2d:%2d",heure,minute,seconde);
la viper essaye  
printf("%2d:%2d:%2d",heure,minute,seconde);  
 
ou
 
printf("%d2:%d2:%d2",heure,minute,seconde);  
 
m'en rappelle plus
la viper ess
slashp Ca peut paraitre con mais j'arrive pas à faire un truc:
 
Quand je fait un  
printf("%d:%d:%d",heure,minute,seconde);
 
Ca m'affiche ça:
1:6:40 au lieu de 01:06:40
 
Comment forcer printf à afficher 2 caractères par nombre, même pour les nombres inférieurs à 10 et donc afficher 01 au lieu de 1 par exemple.
 
Merci

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