Quiero cout
generar un int con ceros a la izquierda, para que el valor 1
se imprima como 001
y el valor se 25
imprima como 025
. ¿Cómo puedo hacer esto?
c++
formatting
cout
jamieQ
fuente
fuente
Respuestas:
Con lo siguiente,
la salida será
setfill
está configurado con el carácter de espacio (' '
) de forma predeterminada.setw
establece el ancho del campo a imprimir, y eso es todo.Si está interesado en saber cómo formatear las secuencias de salida en general, escribí una respuesta para otra pregunta, espero que sea útil: Formatear la salida de la consola C ++.
fuente
char* or char[]
) para no consolar directamente? En realidad, estoy escribiendo una función que devuelve una cadena con formato<iostream>
y<iomanip>
en la parte superior de su archivo, y deberá escribirusing namespace std;
, pero esa es una mala práctica, por lo que tal vez debería prefijar los tres identificadores en esta respuesta constd::
.Otra forma de lograr esto es usar la
printf()
función antigua del lenguaje CPuedes usar esto como
Esto se imprimirá
09 - 01 - 0001
en la consola.También puede usar otra función
sprintf()
para escribir resultados formateados en una cadena como la siguiente:No olvide incluir el
stdio.h
archivo de encabezado en su programa para ambas funcionesCosa a tener en cuenta:
Puede llenar el espacio en blanco ya sea por 0 o por otro carácter (no número).
Si escribe algo como un
%24d
especificador de formato, esto no rellenará2
espacios en blanco. Esto establecerá el pad en24
y llenará los espacios en blanco.fuente
Esto produce la salida:
fuente
fuente
char* or char[]
) para no consolar directamente? En realidad estoy escribiendo una función que devuelve cadena con formatostd::stringstream
.sprintf(s, "%02d-%02d-%04d", dd, mm, yy);
wheres
ischar*
ydd, mm, yy
are ofint
type. Esto escribirá el02-02-1999
formato de acuerdo con los valores en las variables.Yo usaría la siguiente función. Yo no como hago
sprintf
; no hace lo que quiero !!fuente
Otro ejemplo para generar la fecha y la hora usando cero como carácter de relleno en instancias de valores de un solo dígito: 2017-06-04 18:13:02
fuente
En C ++ 20 podrás hacer:
fuente