iomanip

 

The iomanip is a parameterized input output manipulator. In order to access manipulators that take parameters the header file <iomanip> is included in the program. Some of the manipulators are:-

 

 

 

 

 

 

 

Here is a program which illustrates the working of input output manipulators.

 

#include<iostream>

#include<iomanip>

using namespace std;

 

int main ()

{

            int i=10;

            double a=78.121113;

            char c[50];

            char c1='p';

            cout << "Enter your name " << endl;

            cin >> c;

            cout << setw(10) <<  c << endl;

            cout << setw(15) << c << endl;

            cout << setprecision(5) << a << endl;

            cout << setprecision(7) << a << endl;

            cout << "Hexedecimal number : "  << setbase(16) << i << endl;

            cout << "Octal number : " << setbase(8) << i << endl;

            cout << setfill(c1) << setw(12) << c << endl;

            cout << setfill(c1) << setw(2) << c << endl;

 

            return(0);

}

 

The result of the program is:-

 

program output

 

The statement

           

            #include<iomanip>

 

includes a header file iomanip into the program. The user enters then name ‘Tom’.  The statement

 

            cout << setw(10) <<  c << endl;

 

sets the width of the string c as 10. Since the length of the name ‘Tom’ is 3 extra spaces are added to set the width to be 10. No of spaces added are 7.  The statement

 

            cout << setw(15) << c << endl;

 

sets the width of string c as 15 . This time more no of spaces are added. The statement

           

            cout << setprecision(5) << a << endl;

 

sets the precision of the floating point number a to be 5 digits. The output is 78.121 where actual floating point number is   78.121113. The statement

 

            cout << setprecision(7) << a << endl;

 

sets the precision of the floating point number to be 7 digits. The output is 78.12111 where actual floating point number is   78.121113. The statement

 

            cout << "Hexedecimal number : "  << setbase(16) << i << endl;

 

sets the base of the number i as hexadecimal. The value of the variable i is 10. The hexadecimal format of 10 is a. Therefore output is a. The statement

 

cout << "Octal number : " << setbase(8) << i << endl

 

sets the base of the number 10 as octal. The octal format of 10 is 12 therefore it displays 12. The statement

 

            cout << setfill(c1) << setw(12) << c << endl;  

 

sets the fill character to be c1. The value of c1 is ‘p’. The statement performs the same function of setw but instead of spaces character ‘p’ is padded. The length of string ‘Tom’ is 3 therefore 9 ps are padded to set the width to be 12. The statement

 

            cout << setfill(c1) << setw(2) << c << endl;

 

sets the fill character to be c1. Since the width of the output stream is less than the length of the string ‘Tom’ therefore there is no effect on output. 

 

 

Go to the previous lesson
Table of contents