Looking for c++ Keywords? Try Ask4Keywords

C++Stream-Manipulatoren


Einführung

Manipulatoren sind spezielle Hilfsfunktionen, mit deren Hilfe Eingabe- und Ausgabeströme mit dem operator >> oder operator << gesteuert werden.

Sie können alle mit #include <iomanip> .

Bemerkungen

Manipulatoren können auf andere Weise verwendet werden. Zum Beispiel:

  1. os.width(n); entspricht os << std::setw(n);
    is.width(n); entspricht is >> std::setw(n);

  1. os.precision(n); entspricht os << std::setprecision(n);
    is.precision(n); entspricht is >> std::setprecision(n);

  1. os.setfill(c); entspricht os << std::setfill(c);

  1. str >> std::setbase(base); oder str << std::setbase(base); ist gleich
str.setf(base ==  8 ? std::ios_base::oct :
            base == 10 ? std::ios_base::dec :
                base == 16 ? std::ios_base::hex :
                     std::ios_base::fmtflags(0),
         std::ios_base::basefield);

  1. os.setf(std::ios_base::flag); entspricht os << std::flag;
    is.setf(std::ios_base::flag); entspricht is >> std::flag;

    os.unsetf(std::ios_base::flag); entspricht os << std::no ## flag;
    is.unsetf(std::ios_base::flag); entspricht is >> std::no ## flag;

    (wobei ## - Verkettungsoperator ist )

    für die nächste flag s: boolalpha , showbase , showpoint , showpos , skipws , uppercase .

  1. std::ios_base::basefield .
    Für flag s: dec , hex und oct :
  • os.setf(std::ios_base::flag, std::ios_base::basefield); entspricht os << std::flag;
    is.setf(std::ios_base::flag, std::ios_base::basefield); entspricht is >> std::flag;
    (1)

  • str.unsetf(std::ios_base::flag, std::ios_base::basefield); entspricht str.setf(std::ios_base::fmtflags(0), std::ios_base::basefield);
    (2)

  1. std::ios_base::adjustfield .
    Für flag s: left , right und internal :
  • os.setf(std::ios_base::flag, std::ios_base::adjustfield); entspricht os << std::flag;
    is.setf(std::ios_base::flag, std::ios_base::adjustfield); entspricht is >> std::flag;
    (1)

  • str.unsetf(std::ios_base::flag, std::ios_base::adjustfield); entspricht str.setf(std::ios_base::fmtflags(0), std::ios_base::adjustfield);
    (2)

(1) Wenn das Flag des entsprechenden Felds zuvor durch unsetf .
(2) Wenn das flag gesetzt ist.

  1. std::ios_base::floatfield .
  • os.setf(std::ios_base::flag, std::ios_base::floatfield); entspricht os << std::flag;
    is.setf(std::ios_base::flag, std::ios_base::floatfield); entspricht is >> std::flag;

    für flag s: fixed und scientific .

  • os.setf(std::ios_base::fmtflags(0), std::ios_base::floatfield); entspricht os << std::defaultfloat;
    is.setf(std::ios_base::fmtflags(0), std::ios_base::floatfield); entspricht is >> std::defaultfloat;

  1. str.setf(std::ios_base::fmtflags(0), std::ios_base::flag); entspricht str.unsetf(std::ios_base::flag)

    für flag s: basefield , adjustfield , floatfield .

  1. os.setf(mask) entspricht os << setiosflags(mask);
    is.setf(mask) entspricht is >> setiosflags(mask);

    os.unsetf(mask) entspricht os << resetiosflags(mask);
    is.unsetf(mask) gleich is >> resetiosflags(mask);

    Für fast alle mask des Typs std::ios_base::fmtflags .

Stream-Manipulatoren Verwandte Beispiele