std:: setbase
|
Definiert im Header
<iomanip>
|
||
|
/*unspecified*/
setbase
(
int
base
)
;
|
||
Setzt die numerische Basis des Streams. Wenn in einem Ausdruck verwendet
out
<<
setbase
(
base
)
oder
in
>>
setbase
(
base
)
, ändert das
basefield
-Flag des Streams
out
oder
in
, abhängig vom Wert von
base
:
-
Der Wert
16
setzt
basefieldauf std::ios_base::hex . - Der Wert 8 setzt std::ios_base::oct .
- Der Wert 10 setzt std::ios_base::dec .
Werte von
base
außer 8, 10 oder 16 setzen
basefield
auf Null zurück, was dezimaler Ausgabe und präfixabhängiger Eingabe entspricht.
Inhaltsverzeichnis |
Parameter
| base | - | neuer Wert für basefield |
Rückgabewert
Ein Objekt eines nicht näher spezifizierten Typs, sodass
-
Wenn
out
ein Objekt vom Typ
std::
basic_ostream
<
CharT, Traits
>
ist, dann hat der Ausdruck
out
<<
setbase
(
base
)
- den Typ std:: basic_ostream < CharT, Traits > &
- den Wert out
- verhält sich, als ob f ( out, base ) aufgerufen würde
-
Wenn
in
ein Objekt vom Typ
std::
basic_istream
<
CharT, Traits
>
ist, dann hat der Ausdruck
in
>>
setbase
(
base
)
- den Typ std:: basic_istream < CharT, Traits > &
- den Wert in
- verhält sich, als ob f ( in, base ) aufgerufen würde
wobei die Funktion f definiert ist als:
void f(std::ios_base& str, int base) { // Basis-Feld setzen str.setf(base == 8 ? std::ios_base::oct : base == 10 ? std::ios_base::dec : base == 16 ? std::ios_base::hex : std::ios_base::fmtflags(0), std::ios_base::basefield); }
Beispiel
#include <iomanip> #include <iostream> #include <sstream> 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'; }
Ausgabe:
Parsing string "10 0x10 010" hexadecimal parse: 16 16 16 prefix-dependent parse: 10 16 8 hex output: 0xa 0x10 0x8
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 183 | C++98 |
setbase
konnte nur mit Streams
vom Typ std::ostream oder std::istream verwendet werden |
verwendbar mit jedem
Zeichenstrom |
Siehe auch
|
ändert die Basis für Ganzzahl-Ein-/Ausgabe
(Funktion) |
|
|
steuert, ob Präfix zur Angabe der numerischen Basis verwendet wird
(Funktion) |