std::setbase - cppreference.com (original) (raw)

| | | | | -------------------------------------- | | | | /*unspecified*/ setbase( int base ); | | |

Sets the numeric base of the stream. When used in an expression out << setbase(base) or in >> setbase(base), changes the basefield flag of the stream out or in, depending on the value of base:

Values of base other than 8, 10, or 16 reset basefield to zero, which corresponds to decimal output and prefix-dependent input.

[edit] Parameters

base - new value for basefield

[edit] Return value

An object of unspecified type such that

where the function f is defined as:

[edit] Example

#include #include #include   int main() { std::cout << "Parsing string "10 0x10 010"\n";   int n1, n2, n3; std::istringstream s("10 0x10 010");   s >> std::setbase(16) >> n1 >> n2 >> n3; std::cout << "hexadecimal parse: " << n1 << ' ' << n2 << ' ' << n3 << '\n';   s.clear(); s.seekg(0);   s >> std::setbase(0) >> n1 >> n2 >> n3; std::cout << "prefix-dependent parse: " << n1 << ' ' << n2 << ' ' << n3 << '\n';   std::cout << "hex output: " << std::setbase(16) << std::showbase << n1 << ' ' << n2 << ' ' << n3 << '\n'; }

Output:

Parsing string "10 0x10 010" hexadecimal parse: 16 16 16 prefix-dependent parse: 10 16 8 hex output: 0xa 0x10 0x8

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 183 C++98 setbase could only be used with streamsof type std::ostream or std::istream usable with anycharacter stream

[edit] See also