Imprimir ceros a la izquierda con el operador de salida C ++?

¿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  #include  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; 
 cout << setw(4) << setfill('0') << n << endl; 

de:

http://www.fredosaurus.com/notes-cpp/io/omanipulators.html

o,

 char t[32]; sprintf_s(t, "%05d", 1); 

dará salida a 00001 ya que el OP ya quería hacer