std::setw
| 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.
Parámetros
| n | - | Nuevo valor para el ancho. |
Valor de retorno
Un objeto de tipo no especificado tal que
- si
outes un objeto de tipostd::basic_ostream<CharT, Traits>, la expresiónout << setw(n)- tiene tipo
std::basic_ostream<CharT, Traits>& - tiene valor
out - se comporta como si llamara a
f(out, n)
- tiene tipo
- si
ines un objeto de tipostd::basic_istream<CharT, Traits>, la expresiónin >> setw(n)- tiene tipo
std::basic_istream<CharT, Traits>& - tiene valor
in - se comporta como si llamara a
f(in, n)
- tiene tipo
donde la función f se define como:
void f(std::ios_base& str, int n)
{
// establecer la anchura
str.width(n);
}
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
- 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 como un flujo de salida).
- Sobrecargas de basic_ostream::operator<<() que toman tipos aritméticos o punteros
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.
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"
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. |
Véase también
| Gestiona la anchura de campo. (función miembro pública de std::ios_base)
| |
| Cambia el carácter de relleno. (plantilla de función) | |
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) | |
| Controla si se utiliza prefijo para indicar base numérica. (función) |