Namensräume
Varianten
Aktionen

std::showbase, std::noshowbase

Von cppreference.com
< cpp‎ | io‎ | manip
 
 
 
Input/output-Manipulatoren
Formatierung von Gleitkommazahlen
Ganzzahlformatierung
showbasenoshowbase
Boolean-Formatierung
Feldbreiten- und Füllzeichensteuerung
Andere Formatierungen
Leerzeichenverarbeitung
Ausgabe-Flushen
(C++20)  

Statusflags-Manipulation
Zeit- und Geld-I/O
(C++11)
(C++11)
(C++11)
(C++11)
Gequoteter Manipulator
(C++14)
 
Definiert in Header <ios>
std::ios_base& showbase( std::ios_base& str );
(1)
std::ios_base& noshowbase( std::ios_base& str );
(2)
1) Aktiviert das `showbase`-Flag im Stream str, als ob str.setf(std::ios_base::showbase) aufgerufen worden wäre.
2) Deaktiviert das `showbase`-Flag im Stream str, als ob str.unsetf(std::ios_base::showbase) aufgerufen worden wäre.

Dies ist ein E/A-Manipulator, er kann mit einem Ausdruck wie out << std::showbase für jedes out vom Typ std::basic_ostream oder mit einem Ausdruck wie in >> std::showbase für jedes in vom Typ std::basic_istream aufgerufen werden.

Das `showbase`-Flag beeinflusst das Verhalten von Ganzzahlausgaben (siehe std::num_put::put), Geld-Eingaben (siehe std::money_get::get) und Geld-Ausgaben (siehe std::money_put::put).

Inhalt

[edit] Parameter

str - Referenz auf einen E/A-Stream.

[edit] Rückgabewert

str (Referenz auf den Stream nach der Manipulation).

[edit] Hinweise

Wie in std::num_put::put spezifiziert, verhält sich das `showbase`-Flag bei Ganzzahlausgaben wie der Formatierungsangabe `#` in std::printf, was bedeutet, dass das Präfix für die numerische Basis *nicht* hinzugefügt wird, wenn der Wert Null ausgegeben wird.

[edit] Beispiel

#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';
}

Ausgabe

showbase: 0x2a
noshowbase: 2a
With showbase, parsing 3.14 as money gives 0
Without showbase, parsing 3.14 as money gives 314

[edit] Siehe auch

Löscht die angegebenen ios_base-Flags
(Funktion) [bearbeiten]
Setzt die angegebenen ios_base-Flags
(Funktion) [bearbeiten]