Maison >développement back-end >C++ >Comment les flux C peuvent-ils remplacer printf pour le formatage de sortie ?

Comment les flux C peuvent-ils remplacer printf pour le formatage de sortie ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-02 02:56:10326parcourir

How Can C   Streams Replace printf for Output Formatting?

Formatage de la sortie avec des flux C : alternatives à printf

Contrairement à printf, les flux de sortie C offrent des options pratiques pour contrôler l'apparence de la sortie via le utilisation de manipulateurs de flux. Pour obtenir le même formatage que printf(" d", zipCode), vous pouvez utiliser l'approche suivante :

std::setw et std::setfill

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

std::setw(5) spécifie une largeur de champ de 5, garantissant que la sortie est complétée par des zéros à gauche si nécessaire. std::setfill('0') définit « 0 » comme caractère pour remplir tout espace supplémentaire.

Avantages des manipulateurs de flux

L'utilisation de manipulateurs de flux offre plusieurs avantages :

  • Facilité d'utilisation : ils offrent un moyen concis et intuitif de formater la sortie par rapport aux impressions volumineuses déclarations.
  • Réutilisabilité : les manipulateurs peuvent être réutilisés plusieurs fois pour modifier le format de sortie sans affecter le flux sous-jacent.

Options de formatage alternatives

Notez que la bibliothèque std::iomanip fournit un formatage supplémentaire options :

  • std::setiosflags(ios::left) : aligne la sortie à gauche.
  • std::setiosflags(ios::right) : aligne la sortie à droite .

Gestion des négatifs Nombres

Si vous devez gérer des nombres négatifs, vous pouvez utiliser std::internal, qui place le caractère de remplissage entre le signe et la grandeur :

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

Alternative Bibliothèques

Envisagez d'utiliser la bibliothèque fmt ou la prochaine norme C 20, qui offrent de puissantes options de formatage telles que comme :

  • fmt::format("{:05d}", zipCode)
  • std::format("{:05d}", zipCode)

Ces alternatives offrent des solutions de formatage concises et flexibles.

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:
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