Bonjour !

J'ai parcouru http://cpp.developpez.com/faq/cpp/?p...stream_iomanip et ce forum sans trouver la réponse à ma question. J'ouvre donc ce sujet : je veux formater un flux.
Je fixe les ios_base::flags de mon flux grâce aux manipulateurs puis j'écris le flux grâce à l'opérateur <<.
Il semble que l'appel des manipulateurs doit être fait à chaque écriture même si les flags sont persistents :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
  cout << setw(8) << setbase(16) << setfill('0');   
  for ( int i = 0; i <=0xF; i++ )
    cout << i << endl;
Donne la sortie :
00000000
1
.
.
.
E
F

Il faut le code suivant pour que le formatage soit correct sur les 16 écritures :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  for ( int i = 0; i <=0xF; i++ )
    cout << setw(8) << setbase(16) << setfill('0') << i << endl;
On obtient :

00000000
00000001
00000002
00000003
00000004
00000005
00000006
00000007
00000008
00000009
0000000a
0000000b
0000000c
0000000d
0000000e
0000000f

Sauriez vous pourquoi les manipulateurs doivent être appelés à chaque écriture ?
Y a t il un moyen pour fixer le formatage une bonne fois pour toute afin d'éviter l'appel systématique des manipulateurs ?

Merci pour votre aide.

Sylvain