C++-Standardbibliothek <iomanip>
<iomanip>Es ist eine Header-Datei in der C++-Standardbibliothek, die formatierte Operationen für Eingabe-/Ausgabestreams bereitstellt.
iomanipDie Funktionen in der Bibliothek ermöglichen Entwicklern die Steuerung der Ausgabeformatierung, wie z. B. das Festlegen der Anzahl der Nachkommastellen, der Breite, der Ausrichtung usw.
iomanipEs ist die Abkürzung für Eingabe-/Ausgabe-Manipulatoren; diese bietet eine Reihe von Operatoren zur Steuerung der Formatierung von Eingabe-/Ausgabestreams in der C++-Standardbibliothek und ist auf die folgenden Szenarien anwendbar:
- Umgang mit Gleitkommaformaten im wissenschaftlichen Rechnen;
- Datenausrichtung und Verschönerung;
- Anzeige numerischer Werte in einer bestimmten Basis oder einem bestimmten Format.
Syntax
iomanipFunktionen in der Bibliothek werden üblicherweise zusammen mit<<und>>Zusammen mit Operatoren verwendet, um die Steuerung des Ausgabestreams zu erreichen.
Im Folgenden sind einige häufig verwendeteiomanipFunktion:
| Funktionen/Manipulatoren | Funktionen | Beispielcode | Ergebnis ausgeben |
|---|---|---|---|
std::setw(int n) | Feldbreite festlegen, die Breite für die nächste Ausgabe angebend. | std::cout << std::setw(5) << 42; | 42 |
std::setfill(char) | Füllzeichen festlegen (Standard ist Leerzeichen) | std::cout << std::setfill('*') << std::setw(5) << 42; | ***42 |
std::left | Linke Ausrichtung festlegen | std::cout << std::left << std::setw(5) << 42; | 42 |
std::right | Rechte Ausrichtung festlegen | std::cout << std::right << std::setw(5) << 42; | 42 |
std::internal | Vorzeichen nach links, der Rest nach rechts | std::cout << std::internal << std::setw(5) << -42; | - 42 |
std::setprecision(int) | Anzahl signifikanter Stellen für Gleitkommazahlen festlegen | std::cout << std::setprecision(3) << 3.14159; | 3.14 |
std::fixed | Festkommanotation festlegen, um Gleitkommazahlen auszugeben | std::cout << std::fixed << std::setprecision(2) << 3.14159; | 3.14 |
std::scientific | Format der wissenschaftlichen Notation festlegen, um Gleitkommazahlen auszugeben | std::cout << std::scientific << 3.14159; | 3.141590e+00 |
std::hex | Ganzzahlen zur Anzeige in Hexadezimal (Basis 16) festlegen | std::cout << std::hex << 42; | 2a |
std::oct | Ganzzahlen zur Anzeige in Oktal (Basis 8) festlegen | std::cout << std::oct << 42; | 52 |
std::dec | Ganzzahlen zur Anzeige in Basis 10 festlegen (Standard). | std::cout << std::dec << 42; | 42 |
std::showbase | Basispräfix anzeigen (z. B.0xhexadezimale Darstellung) | std::cout << std::showbase << std::hex << 42; | 0x2a |
std::noshowbase | Basispräfix ausblenden (Standard) | std::cout << std::noshowbase << std::hex << 42; | 2a |
std::uppercase | Hexadezimalbuchstaben in Großbuchstaben anzeigen | std::cout << std::uppercase << std::hex << 42; | 2A |
std::nouppercase | Hexadezimalbuchstaben werden in Kleinbuchstaben angezeigt (Standard). | std::cout << std::nouppercase << std::hex << 42; | 2a |
std::showpos | Vor positiven Zahlen anzeigen+Symbol | std::cout << std::showpos << 42; | +42 |
std::noshowpos | Nicht für positive Zahlen anzeigen+Vorzeichen (Standard) | std::cout << std::noshowpos << 42; | 42 |
std::boolalpha | Boolesche Wertetrue/falseAusgabe | std::cout << std::boolalpha << true; | true |
std::noboolalpha | Boolesche Werte1/0Ausgabe (Standard) | std::cout << std::noboolalpha << true; | 1 |
std::setbase(int n) | Basis für Ganzzahlen festlegen (unterstützt 8, 10, 16). | std::cout << std::setbase(16) << 42; | 2a |
std::resetiosflags | Den angegebenen Stream-Zustand zurücksetzen | std::cout << std::resetiosflags(std::ios::showbase) << std::hex << 42; | 2a |
std::setiosflags | Den angegebenen Stream-Zustand setzen | std::cout << std::setiosflags(std::ios::showbase) << std::hex << 42; | 0x2a |
Beispiel
1. Breite festlegen
NutzungsetwKann die Breite der Ausgabe festlegen. Wenn die Anzahl der Zeichen im Ausgabeinhalt kleiner als die festgelegte Breite ist, wird der verbleibende Teil mit Leerzeichen aufgefüllt.
Beispiel
#include <iomanip>
int main() {
std::cout << std::setw(10) << "Hallo" << std::endl;
return 0;
}
Ausgabe:
Hello
2. Genauigkeit festlegen
NutzungsetprecisionKann die Anzahl der signifikanten Stellen für Gleitkommazahlen festlegen.
Beispiel
#include <iomanip>
int main() {
double pi = 3.141592653589793;
std::cout << "Standard: " << pi << "\n";
std::cout << "Genauigkeit festlegen (3): " << std::setprecision(3) << Pi << "\n";
std::cout << "Genauigkeit festlegen (7): " << std::setprecision(7) << Pi << "\n";
return 0;
}
Ausgabe:
Default: 3.14159 Set precision (3): 3.14 Set precision (7): 3.141593
3. Festkomma- und wissenschaftliche Notation
fixedundscientificKann das Ausgabeformat von Gleitkommazahlen steuern.
Beispiel
#include <iomanip>
int main() {
double num = 123456789.0;
std::cout << "Fixed: " << std::fixed << num << std::endl;
std::cout << "Scientific: " << std::scientific << num << std::endl;
return 0;
}
Ausgabe:
Fixed: 123456789.000000 Scientific: 1.23456789e+08
4. Setzen des Füllzeichens
NutzungsetfillKann das Füllzeichen setzen, normalerweise mitsetwWird zusammen verwendet.
Beispiel
#include <iomanip>
int main() {
std::cout << std::setfill('*') << std::setw(10) << "World" << std::endl;
return 0;
}
Ausgabe:
*****World
5. Setzen und Zurücksetzen von Format-Flags
setiosflagsundresetiosflagsKann die Format-Flags des Streams setzen oder zurücksetzen.
Beispiel
#include <iomanip>
int main() {
std::cout << std::setiosflags(std::ios::uppercase) << std::hex << 255 << std::endl;
std::cout << std::resetiosflags(std::ios::uppercase) << std::hex << 255 << std::endl;
return 0;
}
Ausgabe:
FF ffWeitere Erweiterungen