Spec-Zone.ru › C++

std::showbase, std::noshowbase

Определён в заголовочном файле <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 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

См. также

resetiosflags
сбрасывает указанные флаги ios_base
(функция)
setiosflags
устанавливает указанные флаги ios_base
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/manip/showbase

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API