You are on page 1of 6

Programming

Stream Manipulators

COMP102 Prog. Fundamentals I: Stream Manipulator Slide 2

Stream Manipulators in iostream.h Library




I/O stream manipulators modify the behavior of insertions (<<) and extractions (>>). Examples:
 

endl, flush oct, dec, hex (persistent effect: a change stays effective until another change is requested)
// 10 20 // 12 24 // a 14 10

int i = 10; cout << i << << i + i << endl; cout << oct << i << << i + i << endl; cout << hex << i << << i + i << << dec << i << endl;

decimal: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 octal: 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 Hexdecimal: 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14

COMP102 Prog. Fundamentals I: Stream Manipulator Slide 3

Number Systems


Octal
 

Base 8 8 symbols Base 16 16 symbols More compact representation of the binary system

Hexadecimal
  

Decimal 00 01 02 ... 07 08 09 10 11 ... 15 16 ... 749

Octal 00 01 02 ... 07 10 11 12 13 ... 17 20 ... 1355

Hexadecimal 0 1 2 ... 7 8 9 A B ... F 10 ... 2ED

COMP102 Prog. Fundamentals I: Stream Manipulator Slide 4

More Stream Manipulators in iomanip.h Library

 

#include <iomanip.h> Output manipulators (all except setw() are persistent):




   

setprecision(d) - set number of significant digits to d (d = 0 for default precision); enforce d decimal places by setting the I/O flag fixed setw(w) - set field width to w (or minimally larger than w to display the value correctly) setfill(c) - set fill character to c setiosflags(f) - set flag f to 1 resetiosflags(f) - set flag f to 0

COMP102 Prog. Fundamentals I: Stream Manipulator Slide 5

Formatting Flags (1/2)




ios::fixed
Fixed-point notation (default: not set)  Example: 12.34


ios::scientific
Floating-point notation (default: not set)  Example: 1.234e+001


ios::showpoint
Decimal point and trailing 0s (default: not set)  Example: 12.00


COMP102 Prog. Fundamentals I: Stream Manipulator Slide 6

Formatting Flags (2/2)




ios::showpos
A plus (+) sign is shown before positive numbers (default: not set)  Example: +12


ios::right


Right-justified format when used with setw() (default: set) Left-justified format when used with setw() (default: not set)

ios::left


You might also like