Namespaces
Variants

std:: setw

From cppreference.net
< cpp ‎ | io ‎ | manip
Definido en el encabezado <iomanip>
/* no especificado */ setw ( int n ) ;

Cuando se utiliza en una expresión out << std :: setw ( n ) o in >> std :: setw ( n ) , establece el parámetro width del stream out o in exactamente a n .

Algunas operaciones restablecen el ancho a cero (consulte abajo ), por lo que std::setw puede necesitar ser llamado repetidamente para establecer el ancho para múltiples operaciones.

Contenidos

Parámetros

n - nuevo valor para el ancho

Valor de retorno

Un objeto de tipo no especificado tal que

donde la función f se define como:

void f(std::ios_base& str, int n)
{
    // establecer ancho
    str.width(n);
}

Notas

La propiedad width del flujo se restablecerá a cero (significando "no especificado") si se llama a cualquiera de las siguientes funciones:

  • Entrada
  • Salida

Los efectos exactos que este modificador tiene en la entrada y salida varían entre las funciones de E/S individuales y se describen en cada página de sobrecarga de operator << y operator >> individualmente.

Ejemplo

#include <iomanip>
#include <iostream>
#include <sstream>
int main()
{
    std::cout << "no setw: [" << 42 << "]\n"
              << "setw(6): [" << std::setw(6) << 42 << "]\n"
              << "no setw, several elements: [" << 89 << 12 << 34 << "]\n"
              << "setw(6), several elements: [" << 89 << std::setw(6) << 12 << 34 << "]\n";
    std::istringstream is("hello, world");
    char arr[10];
    is >> std::setw(6) >> arr;
    std::cout << "Input from \"" << is.str() << "\" with setw(6) gave \""
              << arr << "\"\n";
}

Salida:

no setw: [42]
setw(6): [    42]
no setw, several elements: [891234]
setw(6), several elements: [89    1234]
Input from "hello, world" with setw(6) gave "hello"

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 183 C++98 setw solo podía usarse con flujos de
tipo std::ostream o std::istream
utilizable con cualquier
flujo de caracteres

Véase también

gestiona el ancho de campo
(función miembro pública de std::ios_base )
cambia el carácter de relleno
(plantilla de función)
establece la ubicación de los caracteres de relleno
(función)
controla si se usa el prefijo para indicar la base numérica
(función)