Espacios de nombres
Variantes
Acciones

std::setw

De cppreference.com
< cpp‎ | io‎ | manip
 
 
Biblioteca de E/S
Manipuladores de E/S
E/S estilo C
Búferes
(en desuso en C++98)
Flujos
Abstracciones
E/S de archivos
E/S de cadenas
E/S de arrays
(en desuso en C++98)
(en desuso en C++98)
(en desuso en C++98)
Salida sincronizada
Tipos
Interfaz de categoría de error
(C++11)
 
Manipuladores de E/S
Formateo de punto flotante
Formateo de enteros
Formateo de booleanos
Control de ancho de campo y relleno
setw
Otro formateo
Procesamiento de espacio en blanco
Vaciado de salida
(C++20)  

Manipulación de indicadores de estado
E/S de tiempo y dinero
(C++11)
(C++11)
(C++11)
(C++11)
Manipulación entre comillas
(C++14)
 
Definido en el archivo de 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 flujo out o in exactamente en n.

Algunas operaciones restablecen el ancho a cero (véase la sección de Notas), por lo que es posible que sea necesario llamar a std::setw repetidamente para establecer el ancho para múltiples operaciones.

Contenido

[editar] Parámetros

n - Nuevo valor para el ancho.

[editar] Valor de retorno

Un objeto de tipo no especificado tal que

  • si out es un objeto de tipo std::basic_ostream<CharT, Traits>, la expresión out << setw(n)
    • tiene tipo std::basic_ostream<CharT, Traits>&
    • tiene valor out
    • se comporta como si llamara a f(out, n)
  • si in es un objeto de tipo std::basic_istream<CharT, Traits>, la expresión in >> setw(n)
    • tiene tipo std::basic_istream<CharT, Traits>&
    • tiene valor in
    • se comporta como si llamara a f(in, n)

donde la función f se define como:

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

[editar] Notas

La propiedad de ancho del flujo se restablecerá a cero (lo que significa "no especificado") si se llama a alguna de las siguientes funciones:

  • Entrada
  • Salida

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

[editar] Ejemplo

#include <iomanip>
#include <iostream>
#include <sstream>
 
int main()
{
    std::cout << "no setw: [" << 42 << "]\n"
              << "setw(6): [" << std::setw(6) << 42 << "]\n"
              << "no setw, varios elementos: [" << 89 << 12 << 34 << "]\n"
              << "setw(6), varios elementos: [" << 89 << std::setw(6) << 12 << 34 << "]\n";
 
    std::istringstream is("hola, mundo");
    char arr[10];
 
    is >> std::setw(5) >> arr;
    std::cout << "Entrada de \"" << is.str() << "\" con setw(5) dio \""
              << arr << "\"\n";
}

Salida:

no setw: [42]
setw(6): [    42]
no setw, varios elementos: [891234]
setw(6), varios elementos: [89    1234]
Entrada de "hola, mundo" con setw(5) dio "hola"

[editar] Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 183 C++98 setw solo se podía usar con flujos de tipo std::ostream o std::istream. Usable con cualquier flujo de caracteres.

[editar] Véase también

Gestiona la anchura de campo.
(función miembro pública de std::ios_base) [editar]
Cambia el carácter de relleno.
(plantilla de función) [editar]
define la posición de caracteres de relleno
Original:
sets the placement of fill characters
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función) [editar]
Controla si se utiliza prefijo para indicar base numérica.
(función) [editar]