Stream-Manipulation
Übersicht über Stream-Manipulatoren
Stream-Manipulatoren sind leistungsstarke Werkzeuge in C++, die die Formatierung und das Verhalten von Eingabe- und Ausgabeoperationen steuern.
graph TD
A[Stream-Manipulatoren] --> B[Formatierung]
A --> C[Zustandsverwaltung]
A --> D[Numerische Darstellung]
#include <iostream>
#include <iomanip>
int main() {
int zahl = 42;
// Dezimaldarstellung
std::cout << std::dec << zahl << std::endl;
// Hexadezimaldarstellung
std::cout << std::hex << zahl << std::endl;
// Oktaldarstellung
std::cout << std::oct << zahl << std::endl;
return 0;
}
Gleitkomma-Genauigkeit
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.14159265358979;
// Standardgenauigkeit
std::cout << pi << std::endl;
// Feste Genauigkeit
std::cout << std::fixed << std::setprecision(2) << pi << std::endl;
// Wissenschaftliche Notation
std::cout << std::scientific << pi << std::endl;
return 0;
}
Breite- und Ausrichtungsmanipulatoren
Manipulator |
Beschreibung |
setw() |
Feldbreite festlegen |
left |
Ausgabe linksbündig |
right |
Ausgabe rechtsbündig |
setfill() |
Füllzeichen festlegen |
Beispiel für Ausrichtung
#include <iostream>
#include <iomanip>
int main() {
// Rechtsbündig mit Breite und Füllzeichen
std::cout << std::right << std::setw(10) << std::setfill('*') << 42 << std::endl;
// Linksbündig
std::cout << std::left << std::setw(10) << "LabEx" << std::endl;
return 0;
}
#include <iostream>
int main() {
bool flag = true;
// Standard-Boolesche Ausgabe
std::cout << flag << std::endl;
// Textuelle Boolesche Ausgabe
std::cout << std::boolalpha << flag << std::endl;
return 0;
}
Benutzerdefinierte Stream-Manipulatoren
#include <iostream>
#include <iomanip>
// Benutzerdefinierter Manipulator
std::ostream& hervorheben(std::ostream& os) {
return os << "[WICHTIG] ";
}
int main() {
std::cout << hervorheben << "LabEx ist eine hervorragende Lernplattform" << std::endl;
return 0;
}
Zustands-Steuerungsmanipulatoren
Manipulator |
Beschreibung |
skipws |
Leerzeichen überspringen |
noskipws |
Leerzeichen nicht überspringen |
ws |
Leerzeichen extrahieren |
Best Practices
- Verwenden Sie Manipulatoren für konsistente Formatierung.
- Wählen Sie die passende Genauigkeit für numerische Ausgaben.
- Erstellen Sie benutzerdefinierte Manipulatoren für wiederholte Formatierungen.
- Berücksichtigen Sie die Leistungsimplikationen.
LabEx Lerntipp
Das Beherrschen von Stream-Manipulatoren ist entscheidend für die professionelle C++-Programmierung. LabEx bietet interaktive Umgebungen, um diese Techniken effektiv zu üben.