Je veux cout
sortir un entier avec des zéros en tête, donc la valeur 1
sera imprimée comme 001
et la valeur 25
imprimée comme 025
. Comment puis-je faire ceci?
c++
formatting
cout
jamieQ
la source
la source
char* or char[]
) pour ne pas console directement. En fait, j'écris une fonction qui renvoie une chaîne formatée<iostream>
et<iomanip>
en haut de votre fichier, et vous devrez écrireusing namespace std;
, mais c'est une mauvaise pratique, alors vous devriez peut-être plutôt préfixer les trois identificateurs de cette réponsestd::
.Une autre façon d'y parvenir est d'utiliser l'ancienne
printf()
fonction du langage CVous pouvez l'utiliser comme
Cela s'imprimera
09 - 01 - 0001
sur la console.Vous pouvez également utiliser une autre fonction
sprintf()
pour écrire une sortie formatée dans une chaîne comme ci-dessous:N'oubliez pas d'inclure le
stdio.h
fichier d'en - tête dans votre programme pour ces deux fonctionsA noter:
Vous pouvez remplir un espace vide soit par 0, soit par un autre caractère (pas un nombre).
Si vous écrivez quelque chose comme un
%24d
spécificateur de format, cela ne remplira pas2
les espaces vides. Cela définira le pad sur24
et remplira les espaces vides.la source
Cela produit la sortie:
la source
la source
char* or char[]
) pour ne pas console directement. En fait, j'écris une fonction qui renvoie une chaîne formatéestd::stringstream
.sprintf(s, "%02d-%02d-%04d", dd, mm, yy);
oùs
estchar*
etdd, mm, yy
sont deint
type. Cela écrira le02-02-1999
format en fonction des valeurs des variables.En C ++ 20 vous pourrez faire:
la source
J'utiliserais la fonction suivante. Je n'aime pas
sprintf
; il ne fait pas ce que je veux !!la source
Un autre exemple pour afficher la date et l'heure en utilisant zéro comme caractère de remplissage sur les instances de valeurs à un chiffre: 2017-06-04 18:13:02
la source