<< 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
Besides displaying correct results, a program should present its results attractively with good formats.
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:
Example:
cout<<“|”<<setw(10)
<<setioflags(ios::fixed)<<setprecision(3)<<25.67<<”|”;
causes the printout
- 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().
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 "
Notification Switch
Would you like to follow the 'Programming fundamentals in c++' conversation and receive update notifications?