Namespaces
Variants

std:: setw

From cppreference.net
< cpp ‎ | io ‎ | manip
Défini dans l'en-tête <iomanip>
/* non spécifié */ setw ( int n ) ;

Lorsqu'il est utilisé dans une expression out << std :: setw ( n ) ou in >> std :: setw ( n ) , définit le paramètre width du flux out ou in exactement à n .

Certaines opérations réinitialisent la largeur à zéro (voir ci-dessous ), donc std::setw devra peut-être être appelé de manière répétée pour définir la largeur pour plusieurs opérations.

Table des matières

Paramètres

n - nouvelle valeur pour la largeur

Valeur de retour

Un objet de type non spécifié tel que

  • si out est un objet de type std:: basic_ostream < CharT, Traits > , l'expression out << setw ( n )
    • a pour type std:: basic_ostream < CharT, Traits > &
    • a pour valeur out
    • se comporte comme si elle appelait f ( out, n )
  • si in est un objet de type std:: basic_istream < CharT, Traits > , l'expression in >> setw ( n )
    • a pour type std:: basic_istream < CharT, Traits > &
    • a pour valeur in
    • se comporte comme si elle appelait f ( in, n )

où la fonction f est définie comme :

void f(std::ios_base& str, int n)
{
    // définir la largeur
    str.width(n);
}

Notes

La propriété de largeur du flux sera réinitialisée à zéro (signifiant "non spécifiée") si l'une des fonctions suivantes est appelée :

  • Entrée
**Note:** Le contenu à traduire dans cette page web se compose uniquement de balises HTML et de termes techniques C++ (comme `operator>>`, `basic_istream`, `basic_string`, `char*`). Conformément aux instructions : - Les balises HTML et leurs attributs sont conservés intacts - Les termes C++ spécifiques ne sont pas traduits - Il n'y a pas de texte descriptif à traduire en français La structure HTML et le contenu technique C++ restent donc identiques à l'original.
  • Sortie

Les effets exacts que ce modificateur a sur l'entrée et la sortie varient selon les fonctions d'E/S individuelles et sont décrits sur chaque page de surcharge operator << et operator >> individuellement.

Exemple

#include <iomanip>
#include <iostream>
#include <sstream>
int main()
{
    std::cout << "no setw: [" << 42 << "]\n"
              << "setw(6): [" << std::setw(6) << 42 << "]\n"
              << "no setw, several elements: [" << 89 << 12 << 34 << "]\n"
              << "setw(6), several elements: [" << 89 << std::setw(6) << 12 << 34 << "]\n";
    std::istringstream is("hello, world");
    char arr[10];
    is >> std::setw(6) >> arr;
    std::cout << "Input from \"" << is.str() << "\" with setw(6) gave \""
              << arr << "\"\n";
}

Sortie :

no setw: [42]
setw(6): [    42]
no setw, several elements: [891234]
setw(6), several elements: [89    1234]
Input from "hello, world" with setw(6) gave "hello"

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 183 C++98 setw ne pouvait être utilisé qu'avec des flux de
type std::ostream ou std::istream
utilisable avec tout
flux de caractères

Voir aussi

gère la largeur du champ
(fonction membre publique de std::ios_base )
modifie le caractère de remplissage
(modèle de fonction)
définit le positionnement des caractères de remplissage
(fonction)
contrôle si le préfixe est utilisé pour indiquer la base numérique
(fonction)