Heim >Backend-Entwicklung >C++ >Wie können C-Streams printf für die Ausgabeformatierung ersetzen?

Wie können C-Streams printf für die Ausgabeformatierung ersetzen?

Susan Sarandon
Susan SarandonOriginal
2024-12-02 02:56:10246Durchsuche

How Can C   Streams Replace printf for Output Formatting?

Ausgabe mit C-Streams formatieren: Alternativen zu printf

Im Gegensatz zu printf bieten C-Ausgabestreams praktische Optionen zum Steuern des Erscheinungsbilds der Ausgabe über Einsatz von Stream-Manipulatoren. Um die gleiche Formatierung wie printf(" d", zipCode) zu erreichen, können Sie den folgenden Ansatz verwenden:

std::setw und std::setfill

std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;

std::setw(5) gibt eine Feldbreite von 5 an und stellt sicher, dass die Ausgabe bei Bedarf links mit Nullen aufgefüllt wird. std::setfill('0') definiert '0' als das Zeichen, das zusätzlichen Platz ausfüllt.

Vorteile von Stream-Manipulatoren

Die Verwendung von Stream-Manipulatoren bietet mehrere Vorteile :

  • Benutzerfreundlichkeit: Sie bieten im Vergleich zu sperrigen Ausdrucken eine übersichtliche und intuitive Möglichkeit, die Ausgabe zu formatieren Anweisungen.
  • Wiederverwendbarkeit: Manipulatoren können mehrfach wiederverwendet werden, um das Ausgabeformat zu ändern, ohne den zugrunde liegenden Stream zu beeinträchtigen.

Alternative Formatierungsoptionen

Beachten Sie, dass die std::iomanip-Bibliothek zusätzliche Formatierung bereitstellt Optionen:

  • std::setiosflags(ios::left): Richtet die Ausgabe links aus.
  • std::setiosflags(ios::right): Richtet die Ausgabe rechts aus .

Umgang mit negativen Zahlen

Wenn Sie Wenn Sie mit negativen Zahlen umgehen müssen, können Sie std::internal verwenden, das das Füllzeichen zwischen Vorzeichen und Größe platziert:

std::cout << std::internal << std::setw(5) << std::setfill('0') << zipCode << std::endl;

Alternative Bibliotheken

Erwägen Sie die Verwendung die FMT-Bibliothek oder der kommende C 20-Standard, die leistungsstarke Formatierungsoptionen bieten, z als:

  • fmt::format("{:05d}", zipCode)
  • std::format("{:05d}", zipCode)

Diese Alternativen bieten übersichtliche und flexible Formatierungslösungen.

Das obige ist der detaillierte Inhalt vonWie können C-Streams printf für die Ausgabeformatierung ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn