std:: setw
|
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
-
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 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
-
- Sobrecargas de basic_ostream::operator<<() que toman tipos aritméticos o punteros void (en la Etapa 3 de num_put::put() )
- operator<<(basic_ostream&, char) y operator<<(basic_ostream&, char*)
- operator<<(basic_ostream&, basic_string&)
- std::put_money (dentro de money_put::put() )
- std::quoted (cuando se usa con un flujo de 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) |