Maison > Article > développement back-end > Programme C++ pour imprimer les valeurs dans un format spécifié
Supposons que nous ayons trois valeurs doubles. Nous devons les formater et les imprimer comme suit.
Nous devons imprimer la partie entière de la première valeur au format hexadécimal minuscule.
Nous devons imprimer la deuxième valeur à deux décimales et la faire précéder d'un signe pour indiquer si elle est positive ou négative. La deuxième valeur à imprimer doit être justifiée à droite, longue de 15 caractères et soulignée aux positions inutilisées à gauche.
Nous devons imprimer la troisième valeur en notation scientifique avec neuf décimales.
Donc si l'entrée est 256.367, 5783.489, 12.5643295643, la sortie sera
0x100 _______+5783.49 1.256432956E+01
Pour résoudre ce problème nous suivrons les étapes suivantes :
hex flag pour imprimer la valeur au format hexadécimal, showbase Le flag affiche le préfixe « 0x » pour les valeurs hexadécimales, l'indicateur de gauche insère des caractères de remplissage dans le champ de sortie pour compléter la valeur à droite et l'indicateur majuscule imprime la sortie en lettres minuscules.
le drapeau droit insère des caractères de remplissage dans le champ de sortie pour compléter la valeur à gauche, le drapeau fixe imprime la valeur en notation à virgule fixe, set(15) définit la longueur du champ de sortie à 15, le drapeau showpos insère '+ avant le Output ', setfill('_') remplit la sortie avec des traits de soulignement et setprecision() définit la précision de la valeur à 2 décimales.
setprecision() définit la précision de la valeur à 9 décimales, le drapeau scientifique imprime la valeur en notation scientifique, uppercase met la valeur de sortie en majuscule et noshowpos omet tout signe positif avant la valeur de sortie.
Voyons l'implémentation ci-dessous pour une meilleure compréhension :
#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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!