Namespaces
Variants

std:: showbase, std:: noshowbase

From cppreference.net
< cpp ‎ | io ‎ | manip
Input/output manipulators
Floating-point formatting
Integer formatting
showbase noshowbase
Boolean formatting
Field width and fill control
Other formatting
Whitespace processing
Output flushing
Status flags manipulation
Time and money I/O
(C++11)
(C++11)
(C++11)
(C++11)
Quoted manipulator
(C++14)
Определено в заголовочном файле <ios>
std:: ios_base & showbase ( std:: ios_base & str ) ;
(1)
std:: ios_base & noshowbase ( std:: ios_base & str ) ;
(2)
1) Включает флаг showbase в потоке str как если бы был вызван str. setf ( std:: ios_base :: showbase ) .
2) Отключает флаг 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 влияет на вывод восьмеричных и шестнадцатеричных чисел
    std::cout << std::hex
              << "showbase: " << std::showbase << 42 << '\n'
              << "noshowbase: " << std::noshowbase << 42 << '\n';
    // а также на ввод и вывод денежных значений
    std::locale::global(std::locale("en_US.UTF8"));
    long double val = 0;
    std::istringstream("3.14") >> std::showbase >> std::get_money(val);
    std::cout << "С showbase, разбор 3.14 как денежного значения дает " << val << '\n';
    std::istringstream("3.14") >> std::noshowbase >> std::get_money(val);
    std::cout << "Без showbase, разбор 3.14 как денежного значения дает " << 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 флаги
(функция)