Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erreicht man mit std::ostream eine präzise Formatierung wie printf_s?

Wie erreicht man mit std::ostream eine präzise Formatierung wie printf_s?

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 04:30:28274Durchsuche

How to achieve precise formatting with std::ostream like printf_s?

Präzise Formatierung mit std::ostream

Wie erreicht man eine präzise Formatierung mit std::cout? Betrachten Sie das folgende Beispiel:

<code class="cpp">double my_double = 42.0;
char str[12];
printf_s("%11.6lf", my_double); // Prints " 42.000000"</code>

In diesem Code wird printf_s verwendet, um das Double my_double mit einer bestimmten Genauigkeit und Breite zu formatieren und zu drucken. Die entsprechende Funktionalität in std::ostream kann mithilfe von Stream-Manipulatoren erreicht werden.

Um „42.000000“ mit std::cout auszugeben, wenden Sie diese Manipulatoren nacheinander an:

std:: Fixed: Legt die Festkomma-Notation anstelle der wissenschaftlichen Notation fest.

std::setw(11): Setzt die Breite des Ausgabefelds auf 11 Zeichen.

std::setprecision(6): Gibt die Anzahl der Stellen an, die nach dem Dezimalpunkt angezeigt werden sollen.

Der richtige Code lautet:

<code class="cpp">#include <iomanip>

std::cout << std::fixed << std::setw(11) << std::setprecision(6) << my_double;</code>

Dies Der Ansatz ermöglicht eine präzise Formatierung von Doppelwerten mithilfe von std::ostream, ohne auf Bibliotheken von Drittanbietern oder benutzerdefinierte Zeichenfolgenmanipulationen zurückgreifen zu müssen.

Eine umfassende Referenz zur std::ostream-Formatierung finden Sie in der Dokumentation zur C-Standardbibliothek. insbesondere der Abschnitt über „Stream-Manipulatoren“.

Das obige ist der detaillierte Inhalt vonWie erreicht man mit std::ostream eine präzise Formatierung wie printf_s?. 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