Manipulateurs Sticky en C
En programmation C, les manipulateurs sont utilisés pour modifier le formatage de sortie des flux. Certains manipulateurs se comportent de manière « collante », ce qui signifie que leurs effets persistent jusqu'à ce qu'ils soient explicitement modifiés.
Pourquoi setw() n'est-il pas collant ?
std::setw( ) est un exemple de manipulateur non collant. Cela signifie que cela n’affecte que la prochaine opération d’insertion. Une fois setw() utilisé, le paramètre de largeur est réinitialisé à sa valeur par défaut.
D'autres manipulateurs sont-ils collants ?
Tous les manipulateurs, à l'exception de setw(), sont collants. Ce comprend :
Différence entre std::ios_base::width() et std::setw()
std::setw() renvoie un objet qui représente une valeur de largeur. Cet objet peut être utilisé pour définir la largeur du prochain élément inséré dans un flux.
std::ios_base::width() définit directement la largeur du flux. Toutes les insertions ultérieures dans le flux seront formatées avec la nouvelle largeur.
Référence en ligne
Malheureusement, il n'existe aucune documentation claire qui indique explicitement le comportement collant des manipulateurs. Cependant, le comportement peut être déduit de la documentation de la bibliothèque standard C.
Exemple de manipulateurs collants
Le code suivant démontre le comportement collant des manipulateurs :
#include <iostream> #include <iomanip> using namespace std; int main() { // Set the precision to 2 decimal places cout << setprecision(2); // Insert a number cout << 3.14 << endl; // Output: 3.14 // The precision is still set to 2 decimal places cout << 1.2345 << endl; // Output: 1.23 }
Conclusion
Les manipulateurs collants sont un fonctionnalité utile en C qui peut aider à contrôler le formatage de la sortie. Cependant, il est important d'être conscient de leur comportement pour éviter des résultats inattendus.
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!