Ich denke, wonach Sie suchen, ist
%Vor% Die Manipulatoren left
und setw(8)
haben den gleichen Effekt wie der Formatierungsbezeichner %-8s
in printf
. Sie müssen jedoch #include <iomanip>
verwenden, damit dies funktioniert, weil setw
verwendet wird.
BEARBEITEN : Matthieu M. hat darauf hingewiesen, dass obenstehendes cout
dauerhaft geändert wird, so dass alle Fülloperationen linksbündig ausgedruckt werden. Beachten Sie, dass dies nicht so schlimm ist, wie es scheint; Es gilt nur, wenn Sie explizit setw
verwenden, um eine Auffüllung einzurichten. Sie haben einige Möglichkeiten, wie Sie damit umgehen können. Erstens könnten Sie einfach die Disziplin erzwingen, dass Sie vor der Verwendung von setw
immer entweder die Manipulatoren left
oder right
verwenden, um den Text links- bzw. rechtsbündig auszurichten. Alternativ können Sie mit der Funktion flags
und setf
den aktuellen Status der Flags in cout
:
Dies funktioniert in drei Schritten. In der ersten Zeile werden die aktuellen Formatierungsflags von cout
gelesen, einschließlich der aktuellen Ausrichtung der gepolsterten Ausgabe. Die zweite Zeile gibt den Wert aus. Schließlich setzt die letzte Zeile cout
Ausgabeflags für die interne Ausrichtung auf ihren alten Wert zurück.
Ich persönlich denke, dass die erste Option attraktiver ist, aber es ist definitiv gut zu wissen, dass die zweite Option existiert, da sie technisch korrekter ist.