std::showbase, std::noshowbase
Определён в заголовочном файле <ios> | ||
|---|---|---|
std::ios_base& showbase( std::ios_base& str ); | (1) | |
std::ios_base& noshowbase( std::ios_base& str ); | (2) |
showbase в потоке str, как если бы была вызвана функция str.setf(std::ios_base::showbase).showbase в потоке str, как если бы была вызвана функция str.unsetf(std::ios_base::showbase).Это манипулятор ввода-вывода. Его можно вызвать с выражением, например out << std::showbase, для любого out типа std::basic_ostream или с выражением, например in >> std::showbase, для любого in типа std::basic_istream.
Флаг showbase влияет на поведение при выводе целых чисел (см. std::num_put::put), вводе денежных значений (см. std::money_get::get) и выводе денежных значений (см. std::money_put::put).
Параметры
| str | - | ссылка на поток ввода-вывода |
Возвращаемое значение
str (ссылка на поток после манипуляции).
Примечания
Согласно std::num_put::put, флаг showbase при выводе целых чисел действует так же, как спецификатор формата # в std::printf, а это означает, что префикс основания системы счисления не добавляется при выводе нулевого значения.
Пример
#include <iomanip>
#include <iostream>
#include <locale>
#include <sstream>
int main()
{
// showbase affects the output of octals and hexadecimals
std::cout << std::hex
<< "showbase: " << std::showbase << 42 << '\n'
<< "noshowbase: " << std::noshowbase << 42 << '\n';
// and both input and output of monetary values
std::locale::global(std::locale("en_US.UTF8"));
long double val = 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';
}
Вывод:
showbase: 0x2a noshowbase: 2a With showbase, parsing 3.14 as money gives 0 Without showbase, parsing 3.14 as money gives 314
См. также
| сбрасывает указанные флаги ios_base (функция) |
|
устанавливает указанные флаги ios_base (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/manip/showbase