Heim >Backend-Entwicklung >C++ >C++-Programm zum Drucken von Werten im angegebenen Format
Angenommen, wir haben drei Doppelwerte. Wir müssen sie wie folgt formatieren und ausdrucken.
Wir müssen den ganzzahligen Teil des ersten Werts im hexadezimalen Kleinbuchstabenformat drucken.
Wir müssen den zweiten Wert mit zwei Dezimalstellen ausdrucken und ihm ein Vorzeichen voranstellen, um anzuzeigen, ob er positiv oder negativ ist. Der zweite zu druckende Wert muss rechtsbündig ausgerichtet sein, 15 Zeichen lang sein und an nicht verwendeten Stellen auf der linken Seite unterstrichen sein.
Wir müssen den dritten Wert in wissenschaftlicher Notation mit neun Dezimalstellen ausdrucken.
Wenn die Eingabe also 256,367, 5783,489, 12,5643295643 ist, lautet die Ausgabe
0x100 _______+5783.49 1.256432956E+01
Um dieses Problem zu lösen, führen wir die folgenden Schritte aus:
hex-Flag zum Drucken des Werts im Hexadezimalformat, showbase Das Flag zeigt das Präfix „0x“ für Hexadezimalwerte an, das Flag „Left“ fügt Füllzeichen in das Ausgabefeld ein, um den Wert rechts aufzufüllen, und das Flag „Nouppercase“ gibt die Ausgabe in Kleinbuchstaben aus.
Rechts-Flag fügt Auffüllzeichen in das Ausgabefeld ein, um den Wert nach links aufzufüllen, Fest-Flag gibt den Wert in Festkomma-Notation aus, set(15) setzt die Ausgabefeldlänge auf 15, Showpos-Flag fügt '+ vor dem ein Ausgabe '-Symbol, setfill('_') füllt die Ausgabe mit Unterstrichen und setprecision() setzt die Genauigkeit des Werts auf 2 Dezimalstellen.
setprecision() legt die Genauigkeit des Werts auf 9 Dezimalstellen fest, das Scientific-Flag gibt den Wert in wissenschaftlicher Notation aus, Uppercase macht den Ausgabewert in Großbuchstaben und noshowpos lässt jedes positive Vorzeichen vor dem Ausgabewert weg.
Sehen wir uns zum besseren Verständnis die Implementierung unten an:
#include <iostream> #include <iomanip> using namespace std; void solve(double a, double b, double c) { cout << hex << showbase << nouppercase << left << (long long) a << endl; cout << right << fixed << setw(15) << setfill('_') << setprecision(2) << showpos << b << endl; cout << setprecision(9) << scientific << uppercase << noshowpos << c << endl; } int main() { solve(256.367, 5783.489, 12.5643295643); return 0; }
256.367, 5783.489, 12.5643295643
0x100 _______+5783.49 1.256432956E+01
Das obige ist der detaillierte Inhalt vonC++-Programm zum Drucken von Werten im angegebenen Format. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!