Place
your mouse in the areas below to see comments about the corresponding sections
of code |
Code
|
Initial Comments |
/* Formatting and <iomanip.h> file: 4ex1.cpp(or used as 4ex1.appended) FALL 1998 ___________________________________ Jacob Y. Kazakia jyk0 September 28, 1998 Programming example 1 of week 4 Recitation Instructor: J.Y.Kazakia Recitation Section 01 ___________________________________ Purpose: This program reads three numbers a, b, and c
through the keyboard and outputs them on the screen in various
FIXED formats. Algorithm: Uses the functions: setiosflags, setw, setprecision
to format output ios:: fixed ios:: scientific ios:: showpoint */ #include <iostream.h> #include <iomanip.h> void main() { // variables are typed and defined float a,b,c; // the three numbers cout<<" \n\n Please enter 3 numbers \n a = "; cin>>a; cout<<"\n b = "; cin>>b; cout<<"\n c = "; cin>>c;
|
Since the function setiosflags is sent to cout,
data directed to the default output will be in fixed form. |
// Output everything in fixed point form cout<<setiosflags( ios::fixed ); //***********************************************************
|
Precision is set to 5 digits after the decimal point.
A string of numbers is sent out so that we can easily examine the location
of data in the output.
The width is set to 20 for each one of the three numbers a, b, and c. |
cout<<"\n\n\n With precision 5 and width 20 \n"; cout<<setprecision(5); cout<<"\n 1 2 3 4 5 \n"; cout<<"12345678901234567890123456789012345678901234567890 \n" ; cout<< setw(20)<<a <<setw(20)<< b <<setw(20)<< c ; //***********************************************************
|
Precision is set to 3 digits after the decimal point.
A string of numbers is sent out so that we can easily examine the location
of data in the output.
The width is set to 10 for each one of the three numbers a, b, and c.. |
cout<<"\n\n\n With precision 3 and width 10 \n" ; cout<<setprecision(3); cout<<"\n 1 2 3 4 5 \n"; cout<<"12345678901234567890123456789012345678901234567890 \n" ; cout<< setw(10)<<a <<setw(10)<< b <<setw(10)<< c ; //***********************************************************
|
|
cout<<endl<<endl; cout<<" enter e (exit) to terminate the program...."; char w; cin>>w; } /* THESE ARE SOME OF THE OUTPUTS
|
The third number is entered using 13 significant digits. You will notice
that its output has only 9 nonzero digits, the last two being incorrect.
Why?
( c is declared as float)
Notice that 5 digits after the decimal point are shown even if they are
zero.
The numbers are placed into the 20 slot openings with right justification.
|
Please enter 3 numbers a = 123 b = 0.67895 c = 123456789.0987 With precision 5 and width 20 1 2 3 4 5 12345678901234567890123456789012345678901234567890 123.00000 0.67895 123456792.00000 ************************************************************
|
Note that the third number is longer than 10 places. Two things
happen:
a) there is no distance between the second and third
b) the 10 place space for the third number is automatically increased
to 13.
|
With precision 3 and width 10 1 2 3 4 5 12345678901234567890123456789012345678901234567890 123.000 0.679123456792.000
|
Same story here for a different set of numbers.
Try to understand why the output looks as it does. |
************************************************************ Please enter 3 numbers a = 12.789 b = 0.0000023 c = -456.78967 With precision 5 and width 20 1 2 3 4 5 12345678901234567890123456789012345678901234567890 12.78900 0.00000 -456.78967 With precision 3 and width 10 1 2 3 4 5 12345678901234567890123456789012345678901234567890 12.789 0.000 -456.790 enter e (exit) to terminate the program.... */
|
© 2001 J.Y. Kazakia. All rights reserved