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.
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
- 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).
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 )
| |
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) |