std::dec, std::hex, std::oct
From cppreference.com
Defined in header <ios> | ||
std::ios_base& dec(std::ios_base& str ); | (1) | |
std::ios_base& hex(std::ios_base& str ); | (2) | |
std::ios_base& oct(std::ios_base& str ); | (3) | |
Modifies the default numeric base for integer I/O.
1) Sets the
basefield
of the stream str to dec
as if by calling str.setf(std::ios_base::dec, std::ios_base::basefield).2) Sets the
basefield
of the stream str to hex
as if by calling str.setf(std::ios_base::hex, std::ios_base::basefield).3) Sets the
basefield
of the stream str to oct
as if by calling str.setf(std::ios_base::oct, std::ios_base::basefield).This is an I/O manipulator. It may be called with an expression such as out << std::hex for any out
of type std::basic_ostream or with an expression such as in >> std::hex for any in
of type std::basic_istream.
Contents |
[edit]Parameters
str | - | reference to I/O stream |
[edit]Return value
str (reference to the stream after manipulation).
[edit]Example
Run this code
#include <bitset>#include <iostream>#include <sstream> int main(){std::cout<<"The number 42 in octal: "<< std::oct<<42<<'\n'<<"The number 42 in decimal: "<< std::dec<<42<<'\n'<<"The number 42 in hex: "<< std::hex<<42<<'\n';int n;std::istringstream("2A")>> std::hex>> n;std::cout<< std::dec<<"Parsing \"2A\" as hex gives "<< n <<'\n';// the output base is sticky until changedstd::cout<< std::hex<<"42 as hex gives "<<42<<" and 21 as hex gives "<<21<<'\n'; // Note: there is no I/O manipulator that sets up a stream to print out// numbers in binary format (e.g. bin). If binary output is necessary// the std::bitset trick can be used:std::cout<<"The number 42 in binary: "<<std::bitset<8>{42}<<'\n';}
Output:
The number 42 in octal: 52 The number 42 in decimal: 42 The number 42 in hex: 2a Parsing "2A" as hex gives 42 42 as hex gives 2a and 21 as hex gives 15 The number 42 in binary: 00101010
[edit]See also
changes the base used for integer I/O (function) | |
controls whether prefix is used to indicate numeric base (function) |