Pour la programmation C. Comment puis-je obtenir des nombres à afficher comme 00, 01, 02, 03, au lieu de 0, 1, 2, 3. J'ai juste besoin de 0 avant le nombre jusqu'à 10.
je sais que lorsque vous faites des décimales, vous pouvez faire "% .2f" etc. mais qu'en est-il en sens inverse pour les entiers?
voici ce que j'utilise ... **
printf("Please enter the hours: ");
scanf ("%d",&hour);
printf("Please enter the minutes: ");
scanf ("%d",&minute);
printf("Please enter the seconds: ");
scanf ("%d",&second);
printf("%d : %d : %d\n", hour, minute, second);
}
J'ai besoin que les chiffres s'affichent comme 00: 00: 00
??
Vous devez utiliser %02d
si vous voulez que les zéros non significatifs soient remplis sur deux espaces:
printf ("%02d : %02d : %02d\n", hour, minute, second);
Voir par exemple le programme complet suivant:
#include <stdio.h>
int main (void) {
int hh = 3, mm = 1, ss = 4, dd = 159;
printf ("Time is %02d:%02d:%02d.%06d\n", hh, mm, ss, dd);
return 0;
}
qui génère:
Time is 03:01:04.000159
Gardez à l'esprit que le %02d
signifie deux caractères minimum largeur pour qu'il produise 123 as123
. Cela ne devrait pas être un problème si vos valeurs sont des heures, minutes et secondes valides, mais cela vaut la peine de garder à l'esprit car de nombreux codeurs inexpérimentés semblent faire l'erreur que 2 est en quelque sorte la longueur minimale et maximale.
Utilisez le format: %02d
au lieu. Le 0
signifie remplir le champ en utilisant des zéros et le 2
signifie que le champ a une largeur de deux caractères. Par conséquent, pour tous les nombres qui prennent moins de 2 caractères à afficher, il sera complété par un 0.