From cppreference.com
Defined in header
std::ios_base&showbase(std::ios_base&str); (1) std::ios_base&noshowbase(std::ios_base&str); (2) 1) Enables the showbase flag in the stream str as if by calling str.setf(std::ios_base::showbase).
2) Disables the showbase flag in the stream str as if by calling str.unsetf(std::ios_base::showbase).
This is an I/O manipulator, it may be called with an expression such as out<<std::showbase for any out of type
or with an expression such as in>>std::showbase for any in of type
.
The showbase flag affects the behavior of integer output (see
), monetary input (see
) and monetary output (see
).
Parameters
str - reference to I/O stream Return value
str (reference to the stream after manipulation).
Notes
As specifed in
, the showbase flag in integer output acts like the # format specifier in
, which means the numeric base prefix is not added when outputting the value zero.
Example
Run this code
#include<iomanip>#include<iostream>#include<locale>#include<sstream>intmain(){// showbase affects the output of octals and hexadecimalsstd::cout<<std::hex<<"showbase: "<<std::showbase<<42<<'\n'<<"noshowbase: "<<std::noshowbase<<42<<'\n';// and both input and output of monetary valuesstd::locale::global(std::locale("en_US.UTF8"));longdoubleval=0;std::istringstream("3.14")>>std::showbase>>std::get_money(val);std::cout<<"With showbase, parsing 3.14 as money gives "<<val<<'\n';std::istringstream("3.14")>>std::noshowbase>>std::get_money(val);std::cout<<"Without showbase, parsing 3.14 as money gives "<<val<<'\n';}Output:
showbase: 0x2a noshowbase: 2a With showbase, parsing 3.14 as money gives 0 Without showbase, parsing 3.14 as money gives 314 See also