Transcript Document

CPS120: Introduction to
Computer Science
Formatted I/O
Formatted Output -- Currency
cout.setf(ios : : fixed)
 Print “fixed point” form, not in exponential form
cout.setf(ios : : showpoint)
 Says to always print the decimal point
cout.precison(2)
 Says to print out the two most significant decimal
digits, after rounding to this precision
Line Spacing
In order to end a line in an output statement you may
use the new line character, \n, instead of endl.
 Examples:
cout << "Hello world" << '\n';
cout << "Hello world" << "\n";
cout << "Hello world\n";
 These are practically equivalent to:
cout << "Hello world" << endl;

Escape Sequences
 Other useful "escape sequences" (since the \ is
the escape operator) are:
\t
\\
\'
\"
to generate a tab
to print a backslash
to print a single quote
to print a double quote
Using setf and unsetf
 Each stream has format options that can be changed
OPTION
DESCRIPTION
left
right
showpoint
Left-justifies the output
Right-justifies the output
Displays decimal point and trailing zeros for
floats
Displays e in scientific as E
Displays a leading plus sign
Displays floating point number scientifically
Displays floating-point in normal notation
uppercase
showpos
scientific
fixed
Using Format Options
 Format options are set immediately prior to the
COUT statement
float x = 24.0;
cout << x << ‘\n’;
// displays 24
cout.setf(ios::showpoint);
cout << x << ‘\n’;
// displays 24.00000
cout.unsetf(ios::showpoint);
cout << x << ‘\n’; // displays 24
Using Manipulators

You must include the <iomanip.h> header file at
the top of your program in order to use the
setprecision, setw, and other manipulators. You
must use place the following compiler directive at
the top of your program.
#include <iomanip.h>

I/O manipulators are placed directly in the output
statement
cout << setprecision(2) << price << ‘\n’;
Setting Precision
 The setprecision manipulator allows you to limit
the number of digits that are displayed when a
numeric data type is displayed:
cout << setprecision(2) << price << '\n';
only allows the leading two digits of the value
stored in the variable, price, to be displayed
More Precisely
 If the fixed format was set previously with the
statement:
cout.setf(ios::fixed);
then the setprecision(2) manipulator would have
the effect of rounding or truncating price (and all
future floating-point values in the cout stream) to
the hundredths place
Field Width
 The setw manipulator controls the width of the
field when displaying a value. The statement:
cout << setw(10) << umEndow << endl;
sets the width of the field allocated for the
variable, umEndow, to 10 characters
Formatting Numbers for Output
double price;
price = 78.5;
cout << "The price is $";
cout << price << endl;
 We want the price to be $78.50
Magic Formula for Currency
cout.setf(ios :: fixed);
cout.setf(ios :: showpoint);
cout.precision(2);
Formatted Output -- Currency
cout.setf(ios : : fixed)
 Print “fixed point” form, not in exponential form
cout.setf(ios : : showpoint)
 Says to always print the decimal point
cout.precison(2)
 Says to print out the two most significant decimal
digits, after rounding to this precision