Maison >développement back-end >C++ >Comment puis-je formater la sortie avec des zéros non significatifs en 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;
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);
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;
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!