Manipulátorok

Manipulátor Hatás Leírás
Általános kimenet
endl azonnal '\n' karaktert ir ki, valamint üríti a puffert.
cout << endl; // "Üres sor"
flush azonnal Üríti a puffert.
ends azonnal '\0' karaktert ir ki az adatfolyamra.
setw(n) következő kiírásra Meghatározza egy mező minimális karakterszélességét az outputon.
cout << setw(4) << 2.3 << endl; // " 2.3"
width(n) következő kiírásra Ugyanaz, mint a setw(n).
left tartós Az adott mezőszélességen belül balra igazít.
right tartós Az adott mezőszélességen belül jobbra igazít.
setfill(ch) tartós A kitöltő karaktereket állítja be.
cout << setw(4) << setfill('0') << 2 << endl; // "0004"
Valós számokra vonatkozó beállítások
  tartós Az alapértelmezett számformátum a lehető legkevesebb számjeggyel ír ki a pontosságnak megfelelően. Az alapértelmezett pontosság (precision) 6, ami ekkor a kiírt számjegyek számát (egész+tizedes) jelenti és ennek megfelelően kerekíti a tizedes részt, vagy vált ált scientific módra. Az alapértelmezett számformátum beállítására csak C++11-től van manipulátor (defaultfloat). A korábbi C++ változatokban csak az unsetf(ios_base::floatfield) tagfüggvényhívással lehet.
fixed tartós Fixpontos formátumban írja ki a számot. Ha a precision nem volt beállítva korábban, akkor 6 tizedesjegyet ír ki.
scientific tartós Tudományos formátumban (normál alakban) írja ki a valós számokat. Ha a precision nem volt beállítva korábban, akkor 6 tizedesjegyet ír ki.
setprecision(n) tartós Megadja, hogy hány tizedesjeggyel írja ki valós számot. Alapértelmezett számformátumban a kiírandó számjegyek számát határozza meg. Ilyenkor ennek megfelelően kerekít ill. vált át scientific formára. a Nincs hatása a showpoint ill. noshowpoint beállításokra.
showpoint noshowpoint tartós Csak az alapértelmezett számformátumban van hatása. Akkor is kiírja a tizedes pontot, ha a kiírt értéknek nincsenek tizedes jegyei.
Logikai kimenet
boolalpha noboolalpha tartós Szöveges megjelenítést ad a logikai értékekre. A noboolapha-val lehet kikapcsolni.
Bemenet
skipws noskipws tartós Kezdeti whitespace-eket elhagyja. Kikapcsolni a noskipws használatával lehet.
ws azonnal Az aktuális input pozíciótól kezdődően összes whitespace karaktert elhagyja az első nem whitespace karakterig.
Egyebek
uppercase, nouppercase tartós Nagybetűvel/kisbetűvel írja ki a hexadecimális számjegyeket ill. normál számformátumban az "e" betűt.
dec, oct, hex, setbase(8|10|16) tartós Decimális, oktális, hexadecimális számformátum beállítása.
showbase, noshowbase tartós Egész számok előtt megjeleníti/nem jeleníti meg a számrendszerre utaló előtagot (0x, 0, vagy semmi).
showpos, noshowpos tartós Megjeleníti/nem jeleníti meg pozitív előjelet.
    internal, unitbuf, nounitbuf, setiosflags(f), resetiosflags(f)

A hatás oszlopban található "azonnal" azt jelenti, hogy a manipulátor semmilyen hatással nincs a rákövetkező operandusokra. Ezzel ellentétben a "következő kiírásra", a nevéhez hűen, az utána következő kiírásra van hatással. A "tartós" manipulátorok az adott adatfolyam állapotát tartósan megváltoztatják.

Egyszerű példaprogram a manipulátorok bemutatására: http://svn.iit.bme.hu/proga2/gyakorlat_peldak/gy_05/iomanip

Utolsó frissítés: 2018-02-11 22.03