No Slide Title

Download Report

Transcript No Slide Title

Formatting Output
 Escape Sequences
 iomanip.h Objects
 setw()
 setiosflags(…)
 setprecision()
Output  cout
The object cout is used to direct data to the
ststandard output device, usually the monitor.
w predefined stream object
w in iostream library
w used with insertion operator <<
*
Output  cout
Syntax: cout << ExprOrString;
Read << as “put to”.
cout << 24;
cout << ‘y’;
cout << “Hello”;
Note: none of these contain a “\n” or endl, and
thus may not be displayed immediately.
*
Output  cout
Syntax: cout << ExprOrString;
cout
cout
cout
cout
<<
<<
<<
<<
“The answer to question “;
q_num
q_num;
5
“ is “;
pay_rate
1.5 * pay_rate;
6
cout << endl; // force a new line and flush
The answer to question 5 is 9.0
*
Output  cout
Syntax: cout << ExprOrString << ExprOrString;
Each appends data to the stream.
cout << “Num1 * num2 is “ << num1*num2;
OUTPUT
Num1 * num2 is 110
space
**
Output  cout
Syntax: cout << ExprOrString << ExprOrString;
Each appends data to the stream.
cout << “Num =“ << 35.1;
OUTPUT
Num =35.1
no space
**
Spaces – Essential for Strings
Syntax: cout << ExprOrString << ExprOrString;
Each appends data to the stream.
cout << “Hi, “ << name << “how are you?”;
space
no space
OUTPUT
Hi, Shadowhow are you?
***
Output  cout
Syntax: cout << ExprOrString << ExprOrString;
cout
cout
cout
cout
<<
<<
<<
<<
“The answer to question “;
q_num;
“ is “;
1.5 * pay_rate;
no ;
align the put-to operators for good style
cout << “The answer to question “ << qu_num
<< “ is “<< 1.5 * pay_rate;
**
More Multi-line Syntax
Syntax: cout << ExprOrString << ExprOrString
<< ExprOrString ;
Strings should never span multiple lines
error
cout << “The answer to question number 17 is
listed after question “;
no ;
cout << lastqu << ‘.’;
cout << “The answer to question number 17 “
<< “is listed after question “ << lastqu
<< ‘.’;
**
Escape Sequences
\
Changes the meaning of the character
that follows it.
\n
hard return
\t
tab
\\
\
\”
“
\a
beep or bell
These must be within quotation marks.
Escape Sequences
cout << “Name\tTotal\tGrade\n”;
cout << “Miyo\t186\t B\n”;
cout << “\n Jake\t211\t A\n”;
cout << “Syd\t203\t A\n”;
OUTPUT
Name
Miyo
\n \n gives a
blank line
Jake
Syd
_
Total
186
211
203
Grade
B
A
A
*
Escape Sequences
\
Changes the meaning of the character
that follows it.
\”
take quotes literally
“James \”Big Jim\” Traficant”
gives
James “Big Jim” Traficant
*
Escape Sequences
“\n Alfonsus\n\”Butch\” \nBillone”
gives
Alfonsus
“Butch”
Billone
“|\n Alfonsus\n \t \”Butch\” \tBillone|”
gives
|
Alfonsus
“Butch” Billone|
****
Formatting Output
endl


does the same thing as \n
- inserts a hard return
requires the insertion operator
cout << endl << endl;
is the same as:
cout << “\n\n”;
2.3 Numerical Output using
cout
Using cout to output the results of an
arithmetic expression
• Numerical output should be displayed
attractively
• Programs are often judged on the
presentation of their output, (in addition to
the accuracy of the results)
• For example, $1.897 is not acceptable
output
cout Syntax
cout << ExprOrStringOrManipulator
<< ExprOrStringOrManipulator...;
For Example:
cout << setw(5) << 350; uses field width of 5
cout << setw(7) << 350; uses field width of 7
Formatting Output
the iomanip header file contains
objects which have special
effects on the iostream.
#include <iostream>
#include <iomanip>
*
Formatting Output
iomanip contains the objects which have
special effects on the iostream.…… …...
setw(n)
setprecision(n)
how many columns for
data
sets number of decimals
setiosflags(ios::fixed) displays 6 digits after
the decimal
***
Formatting Output
setw(n)
how many columns for data
cout << setw(4) << ans cout << setw(1) << ans
<< setw(5) << num
<< setw(3) << num
<< setw(4) << “Hi”;
<< setw(3) << “Hi”;
o337132oHi
337132Hi
fields expand
**
Formatting Output
setprecision(n) sets number of decimals
x=
format
result
314.0
setw(10)
setprecision(2)
ooo314.00
314.0
314.0
setw(10)
setprecision(5)
setw(7)
setprecision(5)
point counts
314.00000
314.00000
columns added
***
Formatting Output
setiosflags(ios::fixed) displays 6 digits after
the decimal
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
double v = 0.00123456789;
double w = 1.23456789;
double x = 12.3456789;
double y = 1234.56789;
double z = 12345.6789;
Formatting Output
cout <<v<< endl<<w<< endl <<x<< endl
<<y<< endl <<z<<”\n\n”;
cout << setiosflags(ios::fixed);
cout <<v<< endl <<w<< endl <<x<< endl
<<y<< endl <<z<<”\n\n”;
cout << setprecision(2);
cout <<v<< endl <<w<< endl <<x<< endl
<<y<< endl <<z<<”\n\n”;
}
Formatting Output
default
0.00123457
1.23457
12.3457
1234.57
12345.7
ios::fixed
0.001235
1.234568
12.345679
1234.567890
12345.678900
+ setprecision(2)
0.00
1.23
12.35
1234.57
12345.68
Numerical output with cout
An example from the 2nd Edition text:
output
6
#include <iostream>
18
using namespace std;
124
int main()
--{
149
cout << 6 << ‘\n’
<< 18 << ‘\n’
<< 124 << ‘\n’
<< “---\n”
<< 6+19+124 << ‘\n’;
return 0;
}
Numerical output with cout
Same example using setw( ):
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << setw(3) << 6 << ‘\n’
<< setw(3) << 18 << ‘\n’
<< setw(3) << 124 << ‘\n’
<< “---\n”
<< 6+19+124 << ‘\n’;
return 0;
}
output
6
18
124
--149
Formatting Output
For decimal alignment use:
ios::fixed and setprecision( )
setw( )
use setw( ) each time
cout << setiosflags(ios::fixed) << setprecision(n);
l
l
l
cout << “- -” << setw(n) << var1 << setw(n) << “- -”;
cout << “- -\t” << setw(n) << var1 << setw(n) <<var2;
*
Common Programming
Errors, cout and Variables
Forgetting to declare all variables
Storing wrong data type into a variable
Forgetting to initialize variables
Dividing integer values incorrectly
Mixing data types without knowing effect
Forgetting insertion symbol <<
Good luck is nothing
but preparedness and
opportunity coming
together.