c++ - sprintf - rellenar con ceros vb
Imprimir ceros a la izquierda con el operador de salida C++? (4)
¿Cómo puedo formatear mi salida en C ++? En otras palabras, ¿cuál es el C ++ equivalente al uso de printf
como este?
printf("%05d", zipCode);
Sé que podría usar printf
en C ++, pero preferiría el operador de salida <<
.
¿Usarías lo siguiente?
std::cout << "ZIP code: " << sprintf("%05d", zipCode) << std::endl;
Esto hará el truco:
#include <iostream>
#include <iomanip>
using namespace std;
cout << setw(5) << setfill(''0'') << zipCode << endl;
// or use this if you don''t like ''using namespace std;''
std::cout << std::setw(5) << std::setfill(''0'') << zipCode << std::endl;
Los manipuladores de IO más comunes que controlan el relleno son:
-
std::setw(width)
establece el ancho del campo. -
std::setfill(fillchar)
establece el carácter de relleno. -
std::setiosflags(align)
establece la alineación, donde alinear es ios :: left o ios :: right.
Use las llamadas setw y setfill :
std::cout << std::setw(5) << std::setfill(''0'') << zipCode << std::endl;
o,
char t[32];
sprintf_s(t, "%05d", 1);
dará salida a 00001 ya que el OP ya quería hacer
cout << setw(4) << setfill(''0'') << n << endl;
de: