Lab 3: Experiment 1

Output Expressions

We took a quick look at output in the previous lab; we'll expound on that just a bit.

Output in C++ is done with the cout object. This is the name of the output screen or window. To actually send something to the screen, C++ gives us the << operator. In general, an output statement looks like this:

cout << Value1 <<  Value2 << ... <<  ValueN;

where each ValueI is replaced with objects. Note that << operators separate each of the values.

As mentioned in the introduction to the lab, output statements are actually output expressions. However, we need the semicolon to make it a statement which is what the compiler demands.

The endl Object

You may have noticed a strange object in the output statements of our programs: endl. In your output, you should notice that endl stops the current line of output and starts the next output on the next line. This suggests that endl is interchangeable with "\n". But just how interchangeable?

Add this line of code in your program:

cout << "Line #1." << "\n" << "Line #2" << "\n";
Don't both removing anything from your program since you'll need it later. Recompile and run your program.

Question #3.1.1: What does this statement print? Be very precise with the line breaks.

Replace each "\n" with an endl. Recompile and run your program.

Question #3.1.2: How has the output changed?

endl is a variable for an object, apparently some type of string object with a newline character in it. (It might have other characters we can't see.) As we know, variables do not magically appear in C++. Like cin and cout, the object endl comes from the iostream library.

But that's a bit strange, right? Why not use "\n" all of the time? We could make the output expression from above much simpler:

cout << "Line #1.\nLine #2\n";
So why bother with endl? Actually, endl is more than just the newline character; it also indicates that you want the output to appear on the screen right now. Usually, for these labs, you won't find this to be a big deal. It may never matter to you (depending on your program, compiler, and operating system). Play it safe and use endl at the end of a prompt, but otherwise it doesn't really matter if you use endl or "\n".

Output Anything

We can nearly output anything. Our program currently prints strings, integer objects, and even the result of an expression. We can also print complex objects:

cout << cin << endl;
Add this line to your program, recompile, and execute the program.

Question #3.1.3: What does this line print?

Printing the value of cin isn't really useful; the point is that we can print it. For some objects we'll see later on, this can be very useful, especially in debugging our code.

Back to the Lab Exercise  |  Forward to the Next Experiment
© 2003 by Prentice Hall. All rights reserved.
Report all errors to Jeremy D. Frens.