Quiero coutgenerar un int con ceros a la izquierda, para que el valor 1se imprima como 001y el valor se 25imprima como 025. ¿Cómo puedo hacer esto?
c++
formatting
cout
jamieQ
fuente
fuente

Respuestas:
Con lo siguiente,
la salida será
setfillestá configurado con el carácter de espacio (' ') de forma predeterminada.setwestablece 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 - 0001en 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.harchivo 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
%24despecificador de formato, esto no rellenará2espacios en blanco. Esto establecerá el pad en24y 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);wheresischar*ydd, mm, yyare ofinttype. Esto escribirá el02-02-1999formato 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:
std :: cout << std :: format ("{: 03}", 25); // imprime 025fuente