std::ios_base:: width
|
streamsize width
(
)
const
;
|
(1) | |
|
streamsize width
(
streamsize new_width
)
;
|
(2) | |
Verwaltet die minimale Anzahl von Zeichen, die bei bestimmten Ausgabeoperationen generiert werden, und die maximale Anzahl von Zeichen, die bei bestimmten Eingabeoperationen generiert werden.
Inhaltsverzeichnis |
Parameter
| new_width | - | neue Feldbreiteneinstellung |
Rückgabewert
Die Feldbreite vor dem Aufruf der Funktion.
Hinweise
Einige E/A-Funktionen rufen width ( 0 ) vor der Rückgabe auf, siehe std::setw (dies führt dazu, dass dieses Feld nur auf die nächste E/A-Funktion wirkt und nicht auf nachfolgende E/A-Operationen).
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 <algorithm> #include <array> #include <iomanip> #include <iostream> #include <span> #include <string_view> using namespace std::string_view_literals; constexpr std::array tabellenkopf = { "Sprache"sv, "Autor"sv, "Geburtsdatum"sv, "Todesdatum"sv }; using row_t = std::array<std::string_view, tabellenkopf.size()>; using widths_t = std::array<std::size_t, tabellenkopf.size()>; constexpr std::array tabelleninhalt = std::to_array<row_t> ({ {"C", "Dennis Ritchie", "1941-09-09", "2011-10-12"}, {"C++", "Bjarne Stroustrup", "1950-12-30"}, {"C#", "Anders Hejlsberg", "1960-12-02"}, {"Python", "Guido van Rossum", "1956-01-31"}, {"Javascript", "Brendan Eich", "1961-07-04"} }); constexpr widths_t berechne_spaltenbreiten(std::span<const row_t> tabelle) { widths_t breiten{}; for (const row_t& zeile : tabelle) for (size_t i = 0; i != zeile.size(); ++i) breiten[i] = std::max(breiten[i], zeile[i].size()); return breiten; } void drucke_zeile(const row_t& zeile, const widths_t& breiten) { std::cout << '|'; for (size_t i = 0; i != zeile.size(); ++i) { std::cout << ' '; std::cout.width(breiten[i]); std::cout << zeile[i] << " |"; } std::cout << '\n'; }; void drucke_trennlinie(const widths_t& breiten) { const std::size_t rand = 1; std::cout.put('+').fill('-'); for (std::size_t w : breiten) { std::cout.width(w + rand * 2); std::cout << '-' << '+'; } std::cout.put('\n').fill(' '); }; int main() { constexpr widths_t breiten = berechne_spaltenbreiten(tabelleninhalt); std::cout.setf(std::ios::left, std::ios::adjustfield); drucke_trennlinie(breiten); drucke_zeile(tabellenkopf, breiten); drucke_trennlinie(breiten); for (const row_t& zeile : tabelleninhalt) drucke_zeile(zeile, breiten); drucke_trennlinie(breiten); }
Ausgabe:
+------------+-------------------+------------+------------+ | Sprache | Autor | Geburtsdatum | Sterbedatum | +------------+-------------------+------------+------------+ | C | Dennis Ritchie | 1941-09-09 | 2011-10-12 | | C++ | Bjarne Stroustrup | 1950-12-30 | | | C# | Anders Hejlsberg | 1960-12-02 | | | Python | Guido van Rossum | 1956-01-31 | | | Javascript | Brendan Eich | 1961-07-04 | | +------------+-------------------+------------+------------+
Siehe auch
|
verwaltet die Dezimalgenauigkeit von Gleitkommaoperationen
(öffentliche Elementfunktion) |
|
|
ändert die Breite des nächsten Eingabe-/Ausgabefelds
(Funktion) |