Wie konvertiere ich diese C-Zeile in C ++? mit dem Befehl cout

7
%Vor%     
Valentina Rose 11.02.2011, 07:35
quelle

2 Antworten

12

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 :

erfassen %Vor%

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.

    
templatetypedef 11.02.2011 07:39
quelle
9

Wenn Sie die Boost-Bibliotheken haben:

%Vor%     
Fred Foo 11.02.2011 07:46
quelle

Tags und Links