Namespaces
Variants

std:: setw

From cppreference.net
< cpp ‎ | io ‎ | manip
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

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)