std:: setw
|
Definiert in Header
<iomanip>
|
||
|
/* unspecified */
setw
(
int
n
)
;
|
||
Wenn in einem Ausdruck verwendet
out
<<
std
::
setw
(
n
)
oder
in
>>
std
::
setw
(
n
)
, setzt den
width
-Parameter des Streams
out
oder
in
exakt auf
n
.
Einige Operationen setzen die Breite auf Null zurück (siehe
unten
), daher muss
std::setw
möglicherweise wiederholt aufgerufen werden, um die Breite für mehrere Operationen festzulegen.
Inhaltsverzeichnis |
Parameter
| n | - | neuer Wert für die Breite |
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
<<
setw
(
n
)
- den Typ std:: basic_ostream < CharT, Traits > &
- den Wert out
- verhält sich, als ob f ( out, n ) aufgerufen würde
-
Wenn
in
ein Objekt vom Typ
std::
basic_istream
<
CharT, Traits
>
ist, dann hat der Ausdruck
in
>>
setw
(
n
)
- den Typ std:: basic_istream < CharT, Traits > &
- den Wert in
- verhält sich, als ob f ( in, n ) aufgerufen würde
wobei die Funktion f definiert ist als:
void f(std::ios_base& str, int n) { // Breite setzen str.width(n); }
Hinweise
Die Breiteneigenschaft des Streams wird auf null zurückgesetzt (was "nicht spezifiziert" bedeutet), wenn eine der folgenden Funktionen aufgerufen wird:
- Eingabe
- Ausgabe
-
- Überladungen von basic_ostream::operator<<() die arithmetische Typen oder void -Zeiger verwenden (in Stufe 3 von num_put::put() )
- operator<<(basic_ostream&, char) und operator<<(basic_ostream&, char*)
- operator<<(basic_ostream&, basic_string&)
- std::put_money (innerhalb von money_put::put() )
- std::quoted (bei Verwendung mit einem Ausgabestrom)
Die genauen Auswirkungen dieses Modifikators auf die Eingabe und Ausgabe variieren zwischen den einzelnen E/A-Funktionen und werden auf jeder operator << und operator >> Überladungsseite individuell beschrieben.
Beispiel
#include <iomanip> #include <iostream> #include <sstream> int main() { std::cout << "no setw: [" << 42 << "]\n" << "setw(6): [" << std::setw(6) << 42 << "]\n" << "no setw, several elements: [" << 89 << 12 << 34 << "]\n" << "setw(6), several elements: [" << 89 << std::setw(6) << 12 << 34 << "]\n"; std::istringstream is("hello, world"); char arr[10]; is >> std::setw(6) >> arr; std::cout << "Input from \"" << is.str() << "\" with setw(6) gave \"" << arr << "\"\n"; }
Ausgabe:
no setw: [42] setw(6): [ 42] no setw, several elements: [891234] setw(6), several elements: [89 1234] Input from "hello, world" with setw(6) gave "hello"
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 183 | C++98 |
setw
konnte nur mit Streams vom
Typ std::ostream oder std::istream verwendet werden |
verwendbar mit jedem
Zeichen-Stream |
Siehe auch
|
verwaltet die Feldbreite
(öffentliche Elementfunktion von
std::ios_base
)
|
|
|
ändert das Füllzeichen
(Funktions-Template) |
|
|
setzt die Position der Füllzeichen
(Funktion) |
|
|
steuert, ob Präfix zur Angabe der Zahlenbasis verwendet wird
(Funktion) |