Funktionsweise |
Top Previous Next |
Skripte > Klassen-Elemente und C++-Befehle > Formatierungsanweisungen > Funktionsweise
1. Wiird format(s) aufgerufen, wobei s der Format-String ist, so wird ein Objekt erzeugt, das den Format-String parst, mögliche Direktiven registriert und interne Strukturen für den nächsten Schritt anlegt.
2. Dann werden entweder unmittelbar, wie in
out << format("%|2$| %|1$|") % 36 % 77 )
oder später, wie in
format fmter("%|2$| %|1$|"); fmter % 36; fmter % 77;
Variablen in den Formatierer eingespeist. Diese Variablen werden dann entsprechend den im Format-String gegebenen Formatierungsoptionen nach out kopiert und das Format-Objekt speichert das Ergebnis für den nächsten Schritt.
3. Sobald sämtliche Argumente eingeführt wurden, kann das Format-Objekt nach out kopiert werden, oder, man kann auf den gesamten String über die str()-Funktion zugreifen. Das Ergebnis bleibt im Format-Objekt erhalten, solange bis ihm andere Argumente übergeben werden, wodurch es reinitialisiert wird.
// fmter wurde zuvor erzeugt und mit Argumenten gespeist; // es kann das Ergebnis ausdrucken out << fmter ;
// Das Ergebnis kann an einen String übergeben werden : str s = fmter.str();
// dies ist mehrmals möglich : s = fmter.str( );
// Es können auch alle Schritte in einem ausgeführt werden : out << format("%|2$| %|1$|") % 36 % 77;
4. Optionnal kann nach Schritt 3 das Format-Objekt wieder benutzt werden, indem bei Schritt 2 neu begonnen wird
fmter % 18 % 39;
neue Variablen mit demselben Format-String zu formatieren, wobei die aufwendige Prozedur aus Schritt 1 gespart wird.
Zusammengefasst: die Format-Klasse übersetzt einen Format-String ( mit möglicherweise printf-ähnlichen Direktiven) in interne Operationen und gibt schließlich das Ergebnis der Formatierung als einen String zurück, der auch direkt in die Ausgabe geschrieben werden kann.
|
Diese Seite gehört zur TextTransformer Dokumentation |
Home Inhalt English |