- 2.1 Introduction
- 2.2 First Program in C++: Printing a Line of Text
- 2.3 Modifying Our First C++ Program
- 2.4 Another C++ Program: Adding Integers
- 2.5 Memory Concepts
- 2.6 Arithmetic
- 2.7 Decision Making: Equality and Relational Operators
- 2.8 Wrap-Up
- Summary
- Self-Review Exercises
- Answers to Self-Review Exercises
- Exercises
- Making a Difference
2.2 First Program in C++: Printing a Line of Text
C++ uses notations that may appear strange to nonprogrammers. We now consider a simple program that prints a line of text (Fig. 2.1). This program illustrates several important features of the C++ language.
Fig 2.1. Text-printing program.
1 // Fig. 2.1: fig02_01.cpp 2 // Text-printing program. 3 #include <iostream> // allows program to output data to the screen 4 5 // function main begins program execution 6 int main() 7 { 8 std::cout << "Welcome to C++!\n"; // display message 9 10 return 0; // indicate that program ended successfully 11 } // end function main |
Comments
Lines 1 and 2
|
each begin with //, indicating that the remainder of each line is a comment. You insert comments to document your programs and to help other people read and understand them. Comments do not cause the computer to perform any action when the program is run—they're ignored by the C++ compiler and do not cause any machine-language object code to be generated. The comment Text-printing program describes the purpose of the program. A comment beginning with // is called a single-line comment because it terminates at the end of the current line. [Note: You also may use C's style in which a comment—possibly containing many lines—begins with /* and ends with */.]
#include Preprocessor Directive
Line 3
|
is a preprocessor directive, which is a message to the C++ preprocessor (introduced in Section 1.9). Lines that begin with # are processed by the preprocessor before the program is compiled. This line notifies the preprocessor to include in the program the contents of the input/output stream header <iostream>. This header must be included for any program that outputs data to the screen or inputs data from the keyboard using C++'s stream input/output. The program in Fig. 2.1 outputs data to the screen, as we'll soon see. We discuss headers in more detail in Chapter 6 and explain the contents of <iostream> in Chapter 15.
Blank Lines and White Space
Line 4 is simply a blank line. You use blank lines, space characters and tab characters (i.e., "tabs") to make programs easier to read. Together, these characters are known as white space. White-space characters are normally ignored by the compiler.
The main Function
Line 5
|
is another single-line comment indicating that program execution begins at the next line.
Line 6
|
is a part of every C++ program. The parentheses after main indicate that main is a program building block called a function. C++ programs typically consist of one or more functions and classes (as you'll learn in Chapter 3). Exactly one function in every program must be named main. Figure 2.1 contains only one function. C++ programs begin executing at function main, even if main is not the first function in the program. The keyword int to the left of main indicates that main "returns" an integer (whole number) value. A keyword is a word in code that is reserved by C++ for a specific use. The complete list of C++ keywords can be found in Fig. 4.3. We'll explain what it means for a function to "return a value" when we demonstrate how to create your own functions in Section 3.3. For now, simply include the keyword int to the left of main in each of your programs.
The left brace, {, (line 7) must begin the body of every function. A corresponding right brace, }, (line 11) must end each function's body.
An Output Statement
Line 8
|
instructs the computer to perform an action—namely, to print the string of characters contained between the double quotation marks. A string is sometimes called a character string or a string literal. We refer to characters between double quotation marks simply as strings. White-space characters in strings are not ignored by the compiler.
The entire line 8, including std::cout, the << operator, the string "Welcome to C++!\n" and the semicolon (;), is called a statement. Every C++ statement must end with a semicolon (also known as the statement terminator). Preprocessor directives (like #include) do not end with a semicolon. Output and input in C++ are accomplished with streams of characters. Thus, when the preceding statement is executed, it sends the stream of characters Welcome to C++!\n to the standard output stream object—std::cout—which is normally "connected" to the screen.
The std Namespace
The std:: before cout is required when we use names that we've brought into the program by the preprocessor directive #include <iostream>. The notation std::cout specifies that we are using a name, in this case cout, that belongs to "namespace" std. The names cin (the standard input stream) and cerr (the standard error stream)—introduced in Chapter 1—also belong to namespace std. Namespaces are an advanced C++ feature that we discuss in depth in Chapter 24, Other Topics. For now, you should simply remember to include std:: before each mention of cout, cin and cerr in a program. This can be cumbersome—in Fig. 2.13, we introduce the using directive, which will enable you to omit std:: before each use of a name in the std namespace.
The Stream Insertion Operator and Es'cape Sequences
The << operator is referred to as the stream insertion operator. When this program executes, the value to the operator's right, the right operand, is inserted in the output stream. Notice that the operator points in the direction of where the data goes. The right operand's characters normally print exactly as they appear between the double quotes. However, the characters \n are not printed on the screen (Fig. 2.1). The backslash (\) is called an escape character. It indicates that a "special" character is to be output. When a backslash is encountered in a string of characters, the next character is combined with the backslash to form an escape sequence. The escape sequence \n means newline. It causes the cursor (i.e., the current screen-position indicator) to move to the beginning of the next line on the screen. Some common escape sequences are listed in Fig. 2.2.
Fig 2.2. Escape sequences.
Escape sequence |
Description |
\n |
Newline. Position the screen cursor to the beginning of the next line. |
\t |
Horizontal tab. Move the screen cursor to the next tab stop. |
\r |
Carriage return. Position the screen cursor to the beginning of the current line; do not advance to the next line. |
\a |
Alert. Sound the system bell. |
\\ |
Backslash. Used to print a backslash character. |
\' |
Single quote. Use to print a single quote character. |
\" |
Double quote. Used to print a double quote character. |
The return Statement
Line 10
|
is one of several means we'll use to exit a function. When the return statement is used at the end of main, as shown here, the value 0 indicates that the program has terminated successfully. The right brace, }, (line 11) indicates the end of function main. According to the C++ standard, if program execution reaches the end of main without encountering a return statement, it's assumed that the program terminated successfully—exactly as when the last statement in main is a return statement with the value 0. For that reason, we omit the return statement at the end of main in subsequent programs.