Saltar al contenido

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

Mantén la atención ya que en esta sección vas a hallar el resultado que buscas.

Solución:

Esto hará el truco, al menos para números no negativos.(a) como los códigos postales(B) mencionado en su pregunta.

#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 E/S 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 align es ios::left o ios::right.

Y solo en su preferencia para usar <<le sugiero encarecidamente que busque en el fmt biblioteca (consulte https://github.com/fmtlib/fmt). Esta ha sido una gran adición a nuestro conjunto de herramientas para formatear cosas y es mucho mejor que las canalizaciones de transmisión de longitud masiva, lo que le permite hacer cosas como:

cout << fmt::format(":05d", zipCode);

Y actualmente LEWG también está apuntando a C++ 20, lo que significa que, con suerte, será una parte básica del lenguaje en ese punto (o casi seguro más adelante si no se cuela del todo).


(a) Si usted hacer necesita manejar números negativos, puede usar std::internal como sigue:

cout << internal << setw(5) << setfill('0') << zipCode << endl;

Esto coloca el carácter de relleno Entre el signo y la magnitud.


(B) Esto ("todos los códigos postales no son negativos") es una suposición de mi parte, pero razonablemente segura, lo garantizo 🙂

Use las llamadas setw y setfill:

std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;

cout << setw(4) << setfill('0') << n << endl;

desde:

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

Calificaciones y comentarios

Acuérdate de que tienes la capacidad de decir si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *