Formatting Output Escape Sequences iomanip.h Objects setw() setiosflags(…) setprecision()

Preview:

Citation preview

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.

predefined stream object in iostream library 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 << “The answer to question “;

cout << q_num;

cout << “ is “;

cout << 1.5 * pay_rate;

cout << endl; // force a new line and flush

*

The answer to question 5 is 9.0

q_num

5pay_rate

6

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?”;

no spacespace

OUTPUT

Hi, Shadowhow are you?

* * *

Output cout

Syntax: cout << ExprOrString << ExprOrString;

cout << “The answer to question “;cout << q_num;cout << “ is “;cout << 1.5 * pay_rate;

* *

no ;

cout << “The answer to question “ << qu_num << “ is “<< 1.5 * pay_rate;

align the put-to operators for good style

More Multi-line Syntax Syntax: cout << ExprOrString << ExprOrString

<< ExprOrString ;

cout << “The answer to question number 17 is listed after question “;cout << lastqu << ‘.’;

* *

cout << “The answer to question number 17 “<< “is listed after question “ << lastqu<< ‘.’;

no ;

Strings should never span multiple lines error

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”;

OUTPUTName Total GradeMiyo 186 B

Jake 211 ASyd 203 A_ *

\n \n gives a blank line

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

endlendl does the same thing as does the same thing as \n\n

- inserts a hard return- inserts a hard return requires the insertion operatorrequires the insertion operator

cout << endl << endlcout << endl << endl;;is the same as:is the same as:

cout << “\n\n”;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 5cout << 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>

setw(n) how many columns for data

setprecision(n) sets number of decimals

setiosflags(ios::fixed) displays 6 digits after the decimal

* * *

Formatting Output

iomanip contains the objects which havespecial effects on the iostream.…… …...

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”;

* *fields expand

337132Hi 337132Hi

Formatting Output

setprecision(n) sets number of decimals

x = format result314.0 setw(10)

setprecision(2)314.00

point counts

314.0 setw(10)setprecision(5) 314.00000

* * *columns added

314.0 setw(7)setprecision(5) 314.00000

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:

#include <iostream>using namespace std;int main(){cout << 6 << ‘\n’

<< 18 << ‘\n’<< 124 << ‘\n’<< “---\n”<< 6+19+124 << ‘\n’;

return 0;}

output

618124---149

Numerical output with coutSame 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 18124---149

Formatting Output

For decimal alignment use:For decimal alignment use:

ios::fixed and setprecision( )setw( ) use setw( ) each use setw( ) each

timetime

cout << setiosflags(ios::fixed) << setprecision(n);cout << setiosflags(ios::fixed) << setprecision(n);

cout << “- -” << setw(n) << var1 << setw(n) << “- -”;cout << “- -” << setw(n) << var1 << setw(n) << “- -”;

cout << “- -\t” << setw(n) << var1 << setw(n) <<var2;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 preparednesspreparedness and

opportunityopportunity coming

together.