J'ai ce code: mais la sortie ne vient pas comme je m'attendais. Au lieu de: p> ceci sort: p> Quel est le problème? Je mets 'std :: ios :: gauche' mais cela ne fait aucune différence? P> p>
5 Réponses :
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'; }
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';
Votre code veut un std :: resetiosflags (std :: ios :: droite) code> envoyé au flux de sortie pour annuler la précédente
std :: Sétiosflags (std :: ios :: à droite) code>. p>
On dirait que les deux laissés code> et
droit code> drapeaux sont définis, celui qui a été défini d'abord prime la priorité. Si je réinitialise explicitement
droit code> drapeau avant de régler
gauche code>, je reçois la sortie que vous attendiez:
Utilisez SETF avec un masque (pas besoin de resetiosFlags)