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