Maison > développement back-end > C++ > Comment puis-je formater la sortie avec des zéros non significatifs en C ?

Comment puis-je formater la sortie avec des zéros non significatifs en C ?

DDD
Libérer: 2024-12-04 21:44:15
original
917 Les gens l'ont consulté

How Can I Format Output with Leading Zeros in C  ?

Formater la sortie avec des zéros non significatifs en C

En C, le formatage de la sortie est crucial pour afficher les données d'une manière spécifique. Un scénario courant consiste à imprimer des zéros non significatifs, de la même manière que printf le gère avec d. Bien que l'utilisation de printf soit une option, vous préférerez peut-être l'opérateur de sortie de flux C (<<).

Une option pour obtenir des zéros non significatifs consiste à concaténer une chaîne formatée à l'aide de sprintf avec votre opérateur de sortie, comme indiqué ci-dessous. :

std::cout << "ZIP code: " << sprintf("%05d", zipCode) << std::endl;
Copier après la connexion

Cependant, il existe une solution plus propre utilisant IO manipulateurs :

#include <iomanip>

using namespace std;

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

// or without 'using namespace std;'
std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;</p>
<p>setw(width) définit la largeur du champ, tandis que setfill(char) spécifie le caractère utilisé pour remplir l'espace restant. Dans ce cas, « 0 » est utilisé pour ajouter des zéros non significatifs.</p>
<p>Notez que ces manipulateurs affectent l'état global de l'objet cout. Pour éviter des effets inattendus lors d'utilisations ultérieures, vous devez les annuler en réinitialisant les indicateurs.</p>
<p>Si vous préférez un formatage concis, pensez à utiliser la bibliothèque fmt :</p>
<pre class="brush:php;toolbar:false">cout << fmt::format("{:05d}", zipCode);
Copier après la connexion

C 20 et versions ultérieures ont construit -dans la prise en charge de std::format, et C 23 introduit std::print, offrant des options encore plus pratiques pour le formatage sortie.

Pour les nombres non négatifs comme les codes postaux, le code ci-dessus suffira. Cependant, si vous devez gérer des nombres négatifs, ajoutez std::internal pour placer le caractère de remplissage entre le signe et la grandeur :

cout << internal << setw(5) << setfill('0') << zipCode << endl;
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal