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