std::showbase, std::noshowbase
De cppreference.com
Definido en el archivo de encabezado <ios>
|
||
std::ios_base& showbase( std::ios_base& str ); |
(1) | |
std::ios_base& noshowbase( std::ios_base& str ); |
(2) | |
1) Habilita el indicador
showbase
en el flujo str como si se llamara a str.setf(std::ios_base::showbase).2) Deshabilita el indicador
showbase
en el flujo str como si se llamara a str.unsetf(std::ios_base::showbase).Este es un manipulador de E/S, que puede llamarse con una expresión como out << std::showbase para cualquier out
del tipo std::basic_ostream o con una expresión como in >> std::showbase para cualquier in
del tipo std::basic_istream.
El indicador showbase
afecta el comportamiento de la toda la salida (véase std::num_put::put), la entrada monetaria (véase std::money_get::get) y la salida monetaria (véase std::money_put::put).
Contenido |
[editar] Parameters
str | - | Referencia al flujo de E/S. |
[editar] Valor de retorno
str (referencia al flujo después de la manipulación).
[editar] Notas
Como se especifica en std::num_put::put, el indicador showbase en la salida de enteros actúa como el especificador de formato # en std::printf, lo que significa que el prefijo de base numérico no se agrega cuando se genera el valor cero.
[editar] Ejemplo
Ejecuta este código
#include <iomanip> #include <iostream> #include <locale> #include <sstream> int main() { // showbase afecta la salida de octales y hexadecimales std::cout << std::hex << "showbase: " << std::showbase << 42 << '\n' << "noshowbase: " << std::noshowbase << 42 << '\n'; // y tanto la entrada como la salida de valores monetarios std::locale::global(std::locale("en_US.utf8")); long double val = 0; std::istringstream("3.14") >> std::showbase >> std::get_money(val); std::cout << "Con showbase, analizando 3.14 como valor monetario da " << val << '\n'; std::istringstream("3.14") >> std::noshowbase >> std::get_money(val); std::cout << "Sin showbase, analizando 3.14 como valor monetario da " << val << '\n'; }
Salida:
showbase: 0x2a noshowbase: 2a Con showbase, analizando 3.14 como valor monetario da 0 Sin showbase, analizando 3.14 como valor monetario da 314
[editar] Véase también
Borra los indicadores ios_base especificados. (función) | |
Establece los indicadores de ios_base especificados. (función) |