9
votes

Formatage du flux de sortie, iOS :: Gauche et iOS :: Droite

J'ai ce code: xxx

mais la sortie ne vient pas comme je m'attendais. Au lieu de: xxx

ceci sort: xxx

Quel est le problème? Je mets 'std :: ios :: gauche' mais cela ne fait aucune différence?


0 commentaires

5 Réponses :


8
votes

Vous devez effacer la valeur précédente dans Réglfield avant de pouvoir définir un nouveau.

Essayez ceci: P>

#include <iostream>
#include <iomanip>
int main () {
  std::cout << std::resetiosflags(std::ios::adjustfield);
  std::cout << std::setiosflags(std::ios::right);
  std::cout << std::setw(3) << 1 << std::setw(3) << 2 << '\n';

  std::cout << std::resetiosflags(std::ios::adjustfield);
  std::cout << std::setiosflags(std::ios::left);
  std::cout << std::setw(3) << 1 << std::setw(3) << 2 << '\n';
}


0 commentaires

19
votes

Sauf si vous vous sentez masochiste, utilisez simplement:

// right justify by default.
cout << setw(3) << 1 << setw(3) << 2 << '\n';

// left justify
cout << std::left << setw(3) << 1 << setw(3) << 2 << '\n';

// right justify again.
cout << std::right << setw(3) << 1 << setw(3) << 2 << '\n';


0 commentaires

1
votes

Votre code veut un std :: resetiosflags (std :: ios :: droite) envoyé au flux de sortie pour annuler la précédente std :: Sétiosflags (std :: ios :: à droite) .


0 commentaires

1
votes

On dirait que les deux laissés et droit drapeaux sont définis, celui qui a été défini d'abord prime la priorité. Si je réinitialise explicitement droit drapeau avant de régler gauche , je reçois la sortie que vous attendiez: xxx


0 commentaires

8
votes

Utilisez SETF avec un masque (pas besoin de resetiosFlags) xxx


0 commentaires