Operacje wejścia-wyjścia (styl C++)
Manipulatory

Dużo wygodniejszym sposobem zmiany formatowania jest wykorzystanie tzw. manipulatorów. Większość z nich jest zdefiniowanych w pliku nagłówkowym iomanip.
Zamiast pisać

cout.setf(ios::showpoint|ios:fixed);
cout.precision(10);
cout.width(20);
cout << 124.43225425 << endl; 

możemy napisać

cout << showpoint << fixed << setprecision(10) << setw(20); 
cout << 124.43225425 << endl; 

ManipulatorZnaczenie
setprecision(n)Ustawia dokładność wypisywania liczb zmiennoprzecinkowych.
setw(n)Ustawia szerokość pola dla danych wejściowych oraz wyjściowych.
skipws
noskipws
Podczas wczytywania będą (nie będą) ignorowane białe znaki.
left
right
internal
Określa sposób wyrównywania (justowania) odpowiednio do lewej, prawej oraz przez wstawienie znaków wypełniających na ustalonej wewnętrznej pozycji np.
-7
     -7
-     7
dec
oct
hex
Decyduje w jakim systemie będą wypisywane i wczytywane liczby, odpowiednio: dziesiętnym, ósemkowym, szesnastkowym.
showbaseDecyduje czy dla liczb ósemkowych i szesnastkowych będą dodawane odpowiednie przedrostki 0 i 0x
uppercaseDecyduje czy w zapisie liczb będą stosowane dużelitery np. 0X1FA23, 1.244E-12
showpointKropka dziesiętna będzie zawsze wypisywana a po niej odpowiednia liczba cyfr (nawet jeżeli są zerami)
scientific
fixed
Określa sposób wypisywania liczb zmiennoprzecinkowych: naukowy (scientific) lub dziesiętny (fixed).
Jeżeli żadna z flag nie jest ustawiona to sposób wypisywania zależy od liczby i ustawionej precyzji.
endlWstawia znak końca wiersza i opróżnia bufor strumienia wyjściowego.
flushOpróżnia bufor strumienia.
wsOdczytuje oraz ignoruje białe znaki.

Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ
Daniel Wilczak