<< Chapter < Page Chapter >> Page >

A postfix operator is placed after a variable and returns the value of the operand before the operation is performed.

Prefix and postfix operators have different effects when used in a statement

b = ++a;

will first increase the value of a to 6, and then assign that new value to b. It is equivalent to

a = a +1;

b = a;

On the other hand, execution of the statement

b = a++;

will first assign the value of 5 to b, and then increase the value of a to 6. It is now equivalent to

b = a;

a = a + 1;

The decrement operators are used in a similar way.

Example

// Preincrementing and postincrementing

#include<iostream.h>

int main()

{

int c;

c = 5;

cout<<c<<endl; // print 5

cout<<c++<<endl; // print 5 then postincrement

cout<<c<<endl<<endl; // print 6

c = 5;

cout<<c<<endl; // print 5

cout<<++c<<endl; // preincrement then print 6

cout<<c<<endl; // print 6

return 0; // successful termination

}

The output of the above program:

5

5

6

5

6

6

Formatting number for program output

Besides displaying correct results, a program should present its results attractively with good formats.

Stream manipulators

Stream manipulator functions are special stream functions that change certain characteristics of the input and output.

The main advantage of using manipulator functions is they facilitate the formatting of the input and output streams.

- setw(): The setw() stands for set width. This manipulator is used to specify the minimum number of the character positions on the output field a variable will consume.

- setprecision(): The setprecision() is used to control the number of digits of an output stream display of a floating point value. Setprecision(2) means 2 digits of precision to the right of the decimal point.

To carry out the operations of these manipulators in a user program, you must include the header file<iomanip.h>.

Example

#include<iostream.h>

#include<iomanip.h>

int main()

{

cout<<setw(3)<<6<<endl

<<setw(3)<<18<<endl

<<setw(3)<<124<<endl

<<"---\n"

<<(6+18+124)<<endl;

return 0;

}

The output of the above program:

Output of above program

Example:

cout<<“|”<<setw(10)

<<setioflags(ios::fixed)<<setprecision(3)<<25.67<<”|”;

causes the printout

Output of above code segment

- setiosflags: This manipulator is used to control different input and output settings.

setioflag(ios::fixed) means the output field will use conventional fixed-point decimal notation.

setiosflag(ios::showpoint) means the output field will show the decimal point for floating point number.

setiosflag(ios::scientific) means the output field will use exponential notation.

Note: In the absence of the ios::fixed flag, a floating point number is displayed with a default of 6 significant digits. If the integral part of the number requires more than 6 digits, the display will be in exponential notation.

Below are some other format flags for use with setiosflags().

Flags for use with setiosflags()

Example

// This program will illustrate output conversions

#include<iostream.h>

#include<iomanip.h>

int main()

{

cout<<"The decimal (base 10) value of 15 is "<<15<<endl

<<"The octal (base 8) value of 15 is "

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Programming fundamentals in c++. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10788/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Programming fundamentals in c++' conversation and receive update notifications?

Ask