Manipulatoren beenden

flohaase

Mitglied
Hallo Leute,

ich spiele gerade etwas mit Manipulatoren herum und weiß leider nicht, wie ich diese wieder „stoppen“ kann. In meinem Skript steht, dass alle Manipulatoren bis auf setw(int) bis zum Widerruf gelten. Leider kann ich diesen Widerruf nicht finden. Ich dachte eig. immer, dass das endl; wäre.

Hier ein kleines Bsp.:

Code:
    cout << setw(10) << setfill('.')  << a << " | " << setw(10) << b << endl;
    cout << "0123456789 | 0123456789" << endl << endl;
    
    /*
     ....test 1 | ....test 2
     0123456789 | 0123456789
     */

setfill(‘.‘) soll nur für die Variable a gelten.

Danke, Gruß Flo
 
Hi,

die Funktion setzt ja wie du selbst gemerkt hast das Zeichen mit dem gefüllt werden soll. Dir wird also nichts anderes übrig bleiben, als danach wieder die Funktion mit einem Leerzeichen aufzurufen. setfill() wirkt in diesem Fall nicht direkt auf deine Output Variable sondern auf den Stream.

Grüße
 
Genau so siehts aus.
Falls es dich interessiert kannst du dir auch das verhalten von "setw()" und "width()" anschauen, die die Feldbreite ändern, aber unterschiedlich lange Gültigkeiten besitzen.
 
Danke @ deepthroat,

aber das sieht schon etwas too much aus. So viel werden wir bestimmt nicht in der Klausur brauchen.
 
Zurück