>length; cout <<"What is the width of the rectangle? "; cin>>width; area = length * width; cout <<"The area of the rectangle is " << area << ".\n"; }"> >length; cout <<"What is the width of the rectangle? "; cin>>width; area = length * width; cout <<"The area of the rectangle is " << area << ".\n"; }">

Presentation is loading. Please wait.

Presentation is loading. Please wait.

Starting Out with C++, 3 rd Edition 1 Chapter 3. Expressions and Interactivity.

Similar presentations


Presentation on theme: "Starting Out with C++, 3 rd Edition 1 Chapter 3. Expressions and Interactivity."— Presentation transcript:

1 Starting Out with C++, 3 rd Edition 1 Chapter 3. Expressions and Interactivity

2 Starting Out with C++, 3 rd Edition 2 3.1The cin Object The cin object reads information types at the keyboard. cin is the standard input object Notice the >> and << operators appear to point in the direction information is flowing.

3 Starting Out with C++, 3 rd Edition 3 Program 3-1 #include void main(void) { int length, width, area; cout <<"This program calculates the area of a rectangle.\n"; cout <<"What is the length of the rectangle? "; cin>>length; cout <<"What is the width of the rectangle? "; cin>>width; area = length * width; cout <<"The area of the rectangle is " << area << ".\n"; }

4 Starting Out with C++, 3 rd Edition 4 Program Output This program calculates the area of a rectangle. What is the length of the rectangle? 10 [Enter] What is the width of the rectangle? 20 [Enter] The area of the rectangle is 200.

5 Starting Out with C++, 3 rd Edition 5 Program 3-2 //This program reads the length and width of a rectangle. //It calculates the rectangle's area and displays //the value on the screen. #include void main(void) { int length, width, area; cin >> length; cin >> width; area = length * width; cout << "The area of the rectangle is " << area << endl; }

6 Starting Out with C++, 3 rd Edition 6 Entering Multiple Values The cin object may be used to gather multiple values at once.

7 Starting Out with C++, 3 rd Edition 7 Program 3-3 #include void main(void) { int length, width, area; cout <<"This program calculates the area of a rectangle.\n"; cout <<"Enter the length and width of the rectangle separated by a space. \n"; cin >> length>> width; area = length * width; cout <<"The area of the rectangle is " << area << endl; }

8 Starting Out with C++, 3 rd Edition 8 Program Output This program calculates the area of a rectangle. Enter the length and width of the rectangle separated by a space. 10 20 [Enter] The area of the rectangle is 200

9 Starting Out with C++, 3 rd Edition 9 Program 3-4 //This program demonstrates how cin can read multiple values //of different data types. #include void main(void) { int whole; float fractional; char letter; cout << "Enter an integer, a float, and a character: "; cin >> whole >> fractional >> letter; cout << "whole: " << whole << endl; cout << "fractional: " << fractional << endl; cout << "letter: " << letter << endl; }

10 Starting Out with C++, 3 rd Edition 10 Program Output Enter an integer, a float, and a character: 4 5.7 b [Enter] whole: 4 fractional: 5.7 letter: b

11 Starting Out with C++, 3 rd Edition 11 Reading Strings cin can read strings as well as numbers. Strings are stored in character arrays. char Company[12];

12 Starting Out with C++, 3 rd Edition 12 Program 3-5 #include void main(void) { string name; cout << "What is your name? "; cin >> name; cout << "Good morning " << name << endl; }

13 Starting Out with C++, 3 rd Edition 13 Program Output What is your name? Charlie [Enter] Good morning Charlie

14 Starting Out with C++, 3 rd Edition 14 Program 3-6 // This program demonstrates how cin can read a // string into a character array #include void main(void) { char name[21] ; cout << "What is your name? "; cin >> name; cout << "Good morning " << name << endl; }

15 Starting Out with C++, 3 rd Edition 15 Program Output What is your name? Charlie [Enter] Good morning Charlie

16 Starting Out with C++, 3 rd Edition 16 Program 3-7 //This program reads two strings into two character arrays. #include void main(void) { char first[16], last[16]; cout << "Enter your first and last names and I will\n"; cout << "reverse them.\n"; cin >> first >> last; cout << last << ", " << first << endl; }

17 Starting Out with C++, 3 rd Edition 17 Program Output Enter your first and last names and I will reverse them. Johnny Jones [Enter] Jones, Johnny

18 Starting Out with C++, 3 rd Edition 18 Notes on strings: If a character array is intended to hold strings, it must be at least one character larger than the largest string that will be stored in it. The cin object will let the user enter a string larger than the array can hold. If this happens, the string will overflow the array’s boundaries and destroy other information in memory. If you wish the user to enter a string that has spaces in it, you cannot use this input method.

19 Starting Out with C++, 3 rd Edition 19 3.2 Focus on Software Engineering: Mathematical Expressions C++ allows you to construct complex mathematical expressions using multiple operators and grouping symbols.

20 Starting Out with C++, 3 rd Edition 20 Program 3-7 // This program reads two strings into two character arrays #include void main(void) { char first[16], last[16]; cout << Enter your first and last names and I will\n"; cout << "reverse them.\n"; cin >> first >> last; cout << last << ", " << first << endl; }

21 Starting Out with C++, 3 rd Edition 21 Program 3-7 Output with Example Input Enter your first and last names and I will reverse them. Johnny Jones [Enter] Jones, Johnny

22 Starting Out with C++, 3 rd Edition 22 Program 3-8 // This program asks the user to enter the numerator // and denominator of a fraction and it displays the // decimal value #include void main(void) { float numerator, denominator; cout << "This program shows the decimal value of "; cout << "a fraction.\n"; cout << “Enter the numerator: “; cin >> numerator; cout << “Enter the denominator: “; cin >> denominator; cout << “The decimal value is “; cout << (numerator / denominator); }

23 Starting Out with C++, 3 rd Edition 23 Program Output for Program 3-8 with Example Input This program shows the decimal value of a fraction. Enter the numerator: 3 [Enter] Enter the denominator: 6 [Enter] The decimal value is 0.1875

24 Starting Out with C++, 3 rd Edition 24 Table 3-1 Precedence of Arithmetic Operators (Highest to Lowest) (unary negation) - * / % + -

25 Starting Out with C++, 3 rd Edition 25 Table 3-2 Some Expressions

26 Starting Out with C++, 3 rd Edition 26 Associativity If two operators sharing an operand have the same precedence, they work according to their associativity, either right to left or left to right

27 Starting Out with C++, 3 rd Edition 27

28 Starting Out with C++, 3 rd Edition 28 Converting Algebraic Expressions to Programming Statements

29 Starting Out with C++, 3 rd Edition 29 No Exponents Please! C++ does not have an exponent operator. Use the pow() library function to raise a number to a power. Will need #include for pow() function. area = pow(4,2) // will store 4 2 in area

30 Starting Out with C++, 3 rd Edition 30 Program 3-9 // This program calculates the area of a circle. // The formula for the area of a circle is Pi times // the radius squared. Pi is 3.14159. #include #include // needed for the pow function void main(void) { double area, radius; cout << "This program calculates the area of a circle.\n"; cout << "What is the radius of the circle? "; cin >> radius; area = 3.14159 * pow(radius,2); cout << "The area is " << area; }

31 Starting Out with C++, 3 rd Edition 31 Program 3-9 Output With Example Input This program calculates the area of a circle. What is the radius of the circle? 10[Enter] The area is 314.159

32 Starting Out with C++, 3 rd Edition 32 3.3 When you Mix Apples and Oranges: Type Coercion When an operator’s operands are of different data types, C++ will automatically convert them to the same data type.

33 Starting Out with C++, 3 rd Edition 33 Type Coercion Rules: Rule 1: Chars, shorts, and unsigned shorts are automatically promoted to int. Rule 2: When an operator works with two values of different data types, the lower-ranking value is promoted to the type of the higher-ranking value. Rule 3: When the final value of an expression is assigned to a variable, it will be converted to the data type of the variable.

34 Starting Out with C++, 3 rd Edition 34 3.4 Overflow and Underflow When a variable is assigned a value that is too large or too small in range for that variable’s data type, the variable overflows or underflows. Overflow - when a variable is assigned a number that is too large for its data type Underflow - when a variable is assigned a number that is too small for its data type

35 Starting Out with C++, 3 rd Edition 35 Program 3-10 // This program demonstrates integer underflow and // overflow #include void main(void) { short testVar = 32767; cout << testVar << endl; testVar = testVar + 1; cout << testVar << endl; testVar = testVar - 1; cout << testVar << endl; }

36 Starting Out with C++, 3 rd Edition 36 Program Output 32767 -32768 32767

37 Starting Out with C++, 3 rd Edition 37 Program 3-11 // This program can be used to see how your system // handles floating point overflow and underflow. #include void main(void) { float test; test = 2.0e38 * 1000; // Should overflow test cout << test << endl; test = 2.0e-38 / 2.0e38; cout << test << endl; }

38 Starting Out with C++, 3 rd Edition 38 3.5 The Typecast Operator The typecast operator allows you to perform manual data type conversion. Val = int(number); //If number is a floating //point variable, it will be //truncated to an integer and //stored in the variable Val

39 Starting Out with C++, 3 rd Edition 39 Program 3-12 #include void main(void) { int months, books; float perMonth; cout << "How many books do you plan to read? "; cin >> books; cout << "How many months will it take you to read them? "; cin >> months; perMonth = float(books) / months; cout << "That is " << perMonth << " books per month.\n"; }

40 Starting Out with C++, 3 rd Edition 40 Program Output How many books do you plan to read? 30 [Enter] How many months will it take you to read them? 7 [Enter] That is 4.285714 books per month.

41 Starting Out with C++, 3 rd Edition 41 Typecast Warnings In Program 3-11, the following statement would still have resulted in integer division: perMonth = float(books / months); Because the division is performed first and the result is cast to a float.

42 Starting Out with C++, 3 rd Edition 42 Program 3-13 // This program uses a typecast operator to print // a character from a number. #include void main(void) { int number = 65; cout << number << endl; cout << char(number) << endl; }

43 Starting Out with C++, 3 rd Edition 43 Program Output 65 A

44 Starting Out with C++, 3 rd Edition 44 3.6 The Power of Constants Constants may be given names that symbolically represent them in a program.

45 Starting Out with C++, 3 rd Edition 45 Program 3-14 // This program calculates the area of a circle. #include void main(void) { const float pi = 3.14159; double area, radius; cout << "This program calculates the area of a circle.\n"; cout << "What is the radius of the circle? "; cin >> radius; area = pi * pow(radius,2); cout << "The area is " << area; }

46 Starting Out with C++, 3 rd Edition 46 The #define Directive The older C-style method of creating named constants is with the #define directive, although it is preferable to use the const modifier. #define PI 3.14159 is roughly the same as const float PI=3.14159;

47 Starting Out with C++, 3 rd Edition 47 Program 3-15 #include #include // needed for pow function #define PI 3.14159 void main(void) { double area, radius; cout << "This program calculates the area of a circle.\n"; cout << "What is the radius of the circle? "; cin >> radius; area = PI * pow(radius, 2); cout << "The area is " << area; }

48 Starting Out with C++, 3 rd Edition 48 3.7 Multiple Assignment and Combined Assignment Multiple assignment means to assign the same value to several variables with one statement. A = B = C = D = 12; Store1 = Store2 = Store3 = BegInv;

49 Starting Out with C++, 3 rd Edition 49 Program 3-16 // The program tracks the inventory of three widget stores // that opened at the same time. Each store started with the // same number of widgets in inventory. By subtracting the // number of widgets each store has sold from its inventory, // the current inventory can be calculated. #include void main(void) { int begInv, sold, store1, store2, store3; cout << “One week ago, 3 new widget stores opened\n"; cout << “at the same time with the same beginning\n"; cout << “inventory. What was the beginning inventory? "; cin >> begInv; store1 = store2 = store3 = begInv;

50 Starting Out with C++, 3 rd Edition 50 Program 3-16 Continued cout << "How many widgets has store 1 sold? "; cin >> sold; store1 = store1 – sold;//Subtract sold from store1 cout << "How many widgets has store 2 sold? "; cin >> sold; store2 = store2 – sold;//Subtract sold from store2 cout << "How many widgets has store 3 sold? "; cin >> sold; store3 = store3 – sold; //Subtract sold from store 3 cout << "Store1: " << store1 << endl; cout << "Store2: " << store2 << endl; cout << "Store3: " << store3 << endl; }

51 Starting Out with C++, 3 rd Edition 51 Program 3-16 Output with Example Input One week ago, 3 new widget stores opened at the same time with the same beginning inventory. What was the beginning inventory? 100 [Enter] How many widgets has store 1 sold? 25 [Enter] How many widgets has store 2 sold? 15 [Enter] How many widgets has store 3 sold? 45 [Enter] The current inventory of each store: Store 1: 75 Store 2: 85 Store 3: 55

52 Starting Out with C++, 3 rd Edition 52 Table 3-8

53 Starting Out with C++, 3 rd Edition 53 Table 3-9

54 Starting Out with C++, 3 rd Edition 54 Program 3-17 // The program tracks the inventory of three widget stores // that opened at the same time. Each store started with the // same number of widgets in inventory. By subtracting the // number of widgets each store has sold from its inventory, // the current inventory can be calculated. #include void main(void) { int begInv, sold, store1, store2, store3; cout << “One week ago, 3 new widget stores opened\n"; cout << “at the same time with the same beginning\n"; cout << “inventory. What was the beginning inventory? "; cin >> begInv; store1 = store2 = store3 = begInv;

55 Starting Out with C++, 3 rd Edition 55 Program 3-17 Continued cout << "How many widgets has store 1 sold? "; cin >> sold; store1 -= sold;//Subtract sold from store1 cout << "How many widgets has store 2 sold? "; cin >> sold; store2 -= sold;//Subtract sold from store2 cout << "How many widgets has store 3 sold? "; cin >> sold; store3 -= sold; //Subtract sold from store 3 cout << "Store1: " << store1 << endl; cout << "Store2: " << store2 << endl; cout << "Store3: " << store3 << endl; }

56 Starting Out with C++, 3 rd Edition 56 Program 3-17 Output with Example Input One week ago, 3 new widget stores opened at the same time with the same beginning inventory. What was the beginning inventory? 100 [Enter] How many widgets has store 1 sold? 25 [Enter] How many widgets has store 2 sold? 15 [Enter] How many widgets has store 3 sold? 45 [Enter] The current inventory of each store: Store 1: 75 Store 2: 85 Store 3: 55

57 Starting Out with C++, 3 rd Edition 57 3.8 Formatting Output The cout object provides ways to format data as it is being displayed. This affects the way data appears on the screen.

58 Starting Out with C++, 3 rd Edition 58 Program 3-18 #include void main(void) { int num1 = 2897, num2 = 5,num3 = 837, num4 = 34, num5 = 7, num6 = 1623, num7 = 390, num8 = 3456, num9 = 12; // Display the first row of numbers cout << num1 << " "; cout << num2 << " "; cout << num3 << endl; // Display the second row of numbers cout << num4 << " "; cout << num5 << " "; cout << num6 << endl; // Display the third row of numbers cout << num7 << " "; cout << num8 << " "; cout << num9 << endl; }

59 Starting Out with C++, 3 rd Edition 59 Program Output 2897 5 837 34 7 1623 390 3456 12

60 Starting Out with C++, 3 rd Edition 60 Program 3-19 //This program displays three rows of numbers. #include #include // for setw function void main(void) { int num1 = 2897, num2 = 5, num3 = 837, num4 = 34, num5 = 7, num6 = 1623, num7 = 390, num8 = 3456, num9 = 12; // Display the first row of numbers cout << setw(4) << num1 << " "; cout << setw(4) << num2 << " "; cout << setw(4) << num3 << endl;

61 Starting Out with C++, 3 rd Edition 61 Program continues // Display the second row of numbers cout << setw(4) << num4 << " "; cout << setw(4) << num5 << " "; cout << setw(4) << num6 << endl; // Display the third row of numbers cout << setw(4) << num7 << " "; cout << setw(4) << num8 << " "; cout << setw(4) << num9 << endl; }

62 Starting Out with C++, 3 rd Edition 62 Program Output 2897 5 837 34 7 1623 390 3456 12

63 Starting Out with C++, 3 rd Edition 63 Program 3-20 //This program demonstrates the setw manipulator being //used with values of various data types. #include void main(void) { int intValue = 3928; float floatValue = 91.5; char cStringValue[] = "John J. Smith"; cout << "(" << setw(5) << intValue << ")" << endl; cout << "(" << setw(8) << floatValue << ")" << endl; cout << "(" << setw(16) << cStringValue << ")" << endl; }

64 Starting Out with C++, 3 rd Edition 64 Program Output ( 3928) ( 91.5) ( John J. Smith)

65 Starting Out with C++, 3 rd Edition 65 Precision Floating point values may be rounded to a number of significant digits, or precision, which is the total number of digits that appear before and after the decimal point.

66 Starting Out with C++, 3 rd Edition 66 Program 3-21 //This program demonstrates how setprecision rounds a //floating point value #include void main(void) { float quotient, number1 = 132.364, number2 = 26.91; quotient = number1 / number2; cout << quotient << endl; cout << setprecision(5) << quotient << endl; cout << setprecision(4) << quotient << endl; cout << setprecision(3) << quotient << endl; cout << setprecision(2) << quotient << endl; cout << setprecision(1) << quotient << endl; }

67 Starting Out with C++, 3 rd Edition 67 Program Output 4.91877 4.9188 4.919 4.92 4.9 5

68 Starting Out with C++, 3 rd Edition 68 Table 3-11

69 Starting Out with C++, 3 rd Edition 69 Program 3-22 //This program asks for sales figures for 3 days. The // total sales is calculated and displayed in a table #include void main(void) { float day1, day2, day3, total; cout << "Enter the sales for day 1: "; cin >> day1; cout << "Enter the sales for day 2: "; cin >> day2;

70 Starting Out with C++, 3 rd Edition 70 Program Continues cout << "Enter the sales for day 3: "; cin >> day3; total = day1 + day2 + day3; cout << "\nSales Figures\n"; cout << "-------------\n"; cout << setprecision(5); cout << “Day 1: " << setw(8) << day1 << endl; cout << “Day 2: " << setw(8) << day2 << endl; cout << “Day 3: " << setw(8) << day3 << endl; cout << “Total: " << setw(8) << total << endl ; }

71 Starting Out with C++, 3 rd Edition 71 Program Output Enter the sales for day 1: 321.57 [Enter] Enter the sales for day 2: 269.62 [Enter] Enter the sales for day 3: 307.77 [Enter] Sales Figures ------------- Day 1: 321.57 Day 2: 269.62 Day 3: 307.77 Total: 898.96

72 Starting Out with C++, 3 rd Edition 72 Program 3-23 //This program asks for sales figures for 3 days. The // total sales is calculated and displayed in a table. #include void main(void) { float day1, day2, day3, total; cout << "Enter the sales for day 1: "; cin >> day1; cout << "Enter the sales for day 2: "; cin >> day2; cout << "Enter the sales for day 3: "; cin >> day3; total = day1 + day2 + day3;

73 Starting Out with C++, 3 rd Edition 73 Program Continues cout << "\nSales Figures\n"; cout << "------\n"; cout << setprecision(2) << setiosflags(ios::fixed); cout << “Day 1: " << setw(8) << day1 << endl; cout << “Day 2: " << setw(8) << day2 << endl; cout << “Day 3: " << setw(8) << day3 << endl; cout << "Total: " << setw(8) << total << endl; }

74 Starting Out with C++, 3 rd Edition 74 Program Output Enter the sales for day 1: 1321.87 [Enter] Enter the sales for day 2: 1869.26 [Enter] Enter the sales for day 3: 1403.77 [Enter] Sales Figures ------------- Day 1: 1321.87 Day 2: 1869.26 Day 3: 1403.77 Total: 4594.9

75 Starting Out with C++, 3 rd Edition 75 IOS Flags setiosflags manipulator can be used to format output in a variety of ways, depending on which flag is specified. setiosflags(ios::fixed) will cause all subsequent numbers to be printed in fixed point notation

76 Starting Out with C++, 3 rd Edition 76 Program 3-24 //This program asks for sales figures for 3 days. The // total sales is calculated and displayed in a table. #include void main(void) { float day1, day2, day3, total; cout << "Enter the sales for day 1: "; cin >> day1; cout << "Enter the sales for day 2: "; cin >> day2;

77 Starting Out with C++, 3 rd Edition 77 Program continues cout << "Enter the sales for day 3: "; cin >> day3; total = day1 + day2 + day3; cout << "\nSales Figures\n"; cout << "-------------\n"; cout << setprecision(2) << setiosflags(ios::fixed | ios::showpoint); cout << “Day 1: " << setw(8) << day1 << endl; cout << “Day 2: " << setw(8) << day2 << endl; cout << “Day 3: " << setw(8) << day3 << endl; cout << "Total: " << setw(8) << total << endl; }

78 Starting Out with C++, 3 rd Edition 78 Program Output Enter the sales for day 1: 2642.00 [Enter] Enter the sales for day 2: 1837.20 [Enter] Enter the sales for day 3: 1963.00 [Enter] Sales Figures ------------- Day 1: 2642.00 Day 2: 1837.20 Day 3: 1963.00 Total: 6442.20

79 Starting Out with C++, 3 rd Edition 79 Table 3-12

80 Starting Out with C++, 3 rd Edition 80 Formatting Output With Member Functions cout.width(5); //calls the width member // function, same as // setw(5) cout.precision(2); //sets precision to // 2 significant // digits // The next statement works like // setiosflags(ios::fixed) cout.setf(ios::fixed);

81 Starting Out with C++, 3 rd Edition 81 Program 3-25 // This program asks for sales figures for 3 days. The // total sales is calculated and displayed in a table. #include void main(void) { float day1, day2, day3, total; cout << "Enter the sales for day 1: "; cin >> day1; cout << "Enter the sales for day 2: "; cin >> day2; cout << "Enter the sales for day 3: "; cin >> day3;

82 Starting Out with C++, 3 rd Edition 82 Program continues total = day1 + day2 + day3; cout.precision(2); cout.setf(ios::fixed | ios::showpoint); cout << "\nSales Figures\n"; cout << "-------------\n"; cout << “Day 1: "; cout.width(8); cout << day1 << endl; cout << “Day 2: "; cout.width(8); cout << day2 << endl;

83 Starting Out with C++, 3 rd Edition 83 Program continues cout << “Day 3: "; cout.width(8); cout << day3 << endl; cout << "Total: "; cout.width(8); cout << total << endl; }

84 Starting Out with C++, 3 rd Edition 84 Program Output Enter the sales for day 1: 2642.00 [Enter] Enter the sales for day 2: 1837.20 [Enter] Enter the sales for day 3: 1963.00 [Enter] Sales Figures ------------- Day 1: 2642.00 Day 2: 1837.20 Day 3: 1963.00 Total: 6442.20

85 Starting Out with C++, 3 rd Edition 85 Program 3-26 // This program asks for sales figures for 3 days. The // total sales is calculated and displayed in a table. #include void main(void) { float day1, day2, day3, total; cout << "Enter the sales for day 1: "; cin >> day1; cout << "Enter the sales for day 2: "; cin >> day2; cout << "Enter the sales for day 3: "; cin >> day3;

86 Starting Out with C++, 3 rd Edition 86 Program continues total = day1 + day2 + day3; cout.precision(2); cout.setf(ios::fixed | ios::showpoint); cout << "\nSales Figures\n"; cout << "-------------\n"; cout << “Day 1: " << setw(8) << day1 << endl; cout << “Day 2: " << setw(8) << day2 << endl; cout << “Day 3: " << setw(8) << day3 << endl; cout << "Total: " << setw(8) << total << endl; return 0; }

87 Starting Out with C++, 3 rd Edition 87 Program Output Enter the sales for day 1: 2642.00 [Enter] Enter the sales for day 2: 1837.20 [Enter] Enter the sales for day 3: 1963.00 [Enter] Sales Figures ------------- Day 1: 2642.00 Day 2: 1837.20 Day 3: 1963.00 Total: 6442.20

88 Starting Out with C++, 3 rd Edition 88 Table 3-13

89 Starting Out with C++, 3 rd Edition 89 3.9Formatted Input The cin object provides ways of controlling string and character input.

90 Starting Out with C++, 3 rd Edition 90 Program 3-27 //This program uses setw with the cin object. #include void main(void) { char word[5]; cout << "Enter a word: "; cin >> setw(5) >> word; cout << "You entered " << word << endl; }

91 Starting Out with C++, 3 rd Edition 91 Program 3-28 //This program uses cin's width member function. #include void main(void) { char word[5]; cout << "Enter a word: "; cin.width(5); cin >> word; cout << "You entered " << word << endl; }

92 Starting Out with C++, 3 rd Edition 92 Program Output for Programs 3-27 and 3-28 Enter a word: Eureka [Enter] You entered Eure

93 Starting Out with C++, 3 rd Edition 93 Important points about the way cin handles field widths: The field width only pertains to the very next item entered by the user. cin stops reading input when it encounters a whitespace character. Whitespace characters include the [Enter] key, space, and tab.

94 Starting Out with C++, 3 rd Edition 94 Reading a “Line” of Input cin.getline(line, 20);

95 Starting Out with C++, 3 rd Edition 95 Program 3-29 //This program demonstrates cin's getline member function. #include void main(void) { char sentence[81]; cout << "Enter a sentence: "; cin.getline(sentence, 81); cout << "You entered " << sentence << endl; }

96 Starting Out with C++, 3 rd Edition 96 Program Output Enter a sentence: To be, or not to be, that is the question. [Enter] You entered To be, or not to be, that is the question.

97 Starting Out with C++, 3 rd Edition 97 Program 3-30 #include void main(void) { char ch; cout << "Type a character and press Enter: "; cin >> ch; cout << "You entered " << ch << endl; } Program Output with Example Input Type a character and press Enter: A [Enter] You entered A

98 Starting Out with C++, 3 rd Edition 98 Program 3-31 #include void main(void) { char ch; cout << "This program has paused. Press enter to continue."; cin.get(ch); cout << "Thank you!" << endl; } Program Output This program has paused. Press Enter to continue. [Enter] Thank you!

99 Starting Out with C++, 3 rd Edition 99 Program 3-32 #include void main(void) { char ch; cout << "Type a character and press Enter: "; cin.get(ch); cout << "You entered " << ch << endl; cout << "Its ASCII code is " << int(ch) << endl; }

100 Starting Out with C++, 3 rd Edition 100 Program Output Type a character and press Enter: [Enter] You entered Its ASCII code is 10

101 Starting Out with C++, 3 rd Edition 101 Mixing cin >> and cin.get Mixing cin.get with cin >> can cause an annoying and hard-to-find problem. Pressing the [Enter] key after inputting a number will cause the newline character to be stored in the keyboard buffer. To avoid this, use cin.ignore. cin.ignore(20,’\n’); will skip the next 20 chars in the input buffer or until a newline is encountered, whichever comes first cin.ignore(); will skip the very next character in the input buffer

102 Starting Out with C++, 3 rd Edition 102 3.10 Focus on Object-Oriented Programming:More About Object- Oriented Programming A member function is a procedure, written in C++ code, that is part of an object. A member function causes the object it is a member of to perform an action In this chapter, we have used width, precision, setf, and unsetf for the cout object In this chapter we have used width, getline, get, and ignore for the cin object

103 Starting Out with C++, 3 rd Edition 103 3.11 More Mathematical Library Functions The C++ runtime library provides several functions for performing complex mathematical operations. In this chapter we have used width, precision, setf, and unsetf for the cout object In this chapter we have used width, getline, get, and ignore for the cin object

104 Starting Out with C++, 3 rd Edition 104 Table 3-14

105 Starting Out with C++, 3 rd Edition 105 Table 3-14 continued

106 Starting Out with C++, 3 rd Edition 106 Table 3-14 continued

107 Starting Out with C++, 3 rd Edition 107 Program 3-33 // This program asks for the lengths of the 2 sides of a right // triangle. The length of the hypotenuse is then calculated // and displayed. #include #include // For sqrt and pow void main(void) { float a, b, c; cout << "Enter the length of side A: "; cin >> a; cout << "Enter the length of side B: "; cin >> b; c = sqrt(pow(a, 2.0) + pow(b, 2.0)); cout.precision(2); cout << "The length of the hypotenuse is "; cout << c << endl; }

108 Starting Out with C++, 3 rd Edition 108 Program Output Enter the length of side A: 5.0 [Enter] Enter the length of side B: 12.0 [Enter] The length of the hypotenuse is 13

109 Starting Out with C++, 3 rd Edition 109 Random numbers rand() (from the cstdlib library)

110 Starting Out with C++, 3 rd Edition 110 Program 3-34 // This program demonstrates random numbers. #include using namespace std; void main(void) { unsigned seed; cout << "Enter a seed value: "; cin >> seed; srand(seed); cout << rand() << endl; }

111 Starting Out with C++, 3 rd Edition 111 Program Output Enter a seed value: 5 1731 32036 21622 Program Output with Other Example Input Enter a seed value: 16 5540 29663 9920

112 Starting Out with C++, 3 rd Edition 112 3.13 Optional Section : Introduction to Simple File Input and Output What is a File? A file is a collection on information, usually stored on a computer’s disk. Information can be saved to files and then later reused.

113 Starting Out with C++, 3 rd Edition 113 The Process of Using a File Using a file in a program is a simple three- step process The file must be opened. If the file does not yet exits, opening it means creating it. Information is then saved to the file, read from the file, or both. When the program is finished using the file, the file must be closed.

114 Starting Out with C++, 3 rd Edition 114 Figure 3-8

115 Starting Out with C++, 3 rd Edition 115 Figure 3-9

116 Starting Out with C++, 3 rd Edition 116 Setting Up a Program for File Input/Output Before file I/O can be performed, a C++ program must be set up properly. File access requires the inclusion of the fstream.h header file.

117 Starting Out with C++, 3 rd Edition 117 Table 3-16

118 Starting Out with C++, 3 rd Edition 118 Opening a File Before data can be written to or read from a file, the file must be opened. ifstream inputFile; inputFile.open(“customer.dat”);

119 Starting Out with C++, 3 rd Edition 119 Closing a File A file should be closed when a program is finished using it. outputFile.close();

120 Starting Out with C++, 3 rd Edition 120 Writing Information to a File The stream insertion operator (<<) may be used to write information to a file. outputFile << “I love C++ programming !” outputFile << “Price: “ << price;

121 Starting Out with C++, 3 rd Edition 121 Program 3-35 // This program uses the #include void main(void) { ofstream outputFile; outputFile.open("demofile.txt"); cout << "Now writing information to the file.\n"; // Write 4 great names to the file outputFile << "Bach\n"; outputFile << "Beethoven\n"; outputFile << "Mozart\n"; outputFile << "Schubert\n";

122 Starting Out with C++, 3 rd Edition 122 Program 3-35 (continued) // Close the file outputFile.close(); cout << "Done.\n"; } Program Screen Output Now writing information to the file. Done. Output to File demofile.txt Bach Beethoven Mozart Schubert

123 Starting Out with C++, 3 rd Edition 123 Reading Information from a File The stream extraction operator (>>) may be used to read information from a file. inFile >> name;

124 Starting Out with C++, 3 rd Edition 124 Program 3-36 // This program uses the >> operator to read information from a // file. #include #include void main(void) { ifstream inFile; char name[81]; inFile.open("demofile.txt"); cout > name; cout > name; cout << name << endl

125 Starting Out with C++, 3 rd Edition 125 Program 3-36 (continued) // Now read name 3 from the file inFile >> name; cout > name; cout << name << endl; // Close the file inFile.close(); cout << "\nDone.\n"; } Program Screen Output Reading information to the file. Bach Beethoven Mozart Schubert Done.

126 Starting Out with C++, 3 rd Edition 126 Program 3-37 // This program uses the >> operator to read information from a // file. #include #include void main(void) { ifstream inFile; int length, width, area; inFile.open("dimensions.txt"); cout > length; inFile >> width; area = length * width; cout > length; inFile >> width; area = length * width; cout << "Area of rectangle 2: " << area << endl;

127 Starting Out with C++, 3 rd Edition 127 Program 3-37 (continued) // Process rectangle 3 inFile >> length; inFile >> width; area = length * width; cout > length; inFile >> width; area = length * width; cout > length; inFile >> width; area = length * width; cout << "Area of rectangle 5: " << area << endl; // Close the file inFile.close(); cout << "\nDone.\n"; }

128 Starting Out with C++, 3 rd Edition 128 Program 3-37 Before Program 3-37 is executed, the file dimensions.txt must be created with a text editor (such as Windows Notepad). Here is an example of the file's contents: 10 2 5 7 18 9 6 20 8 3

129 Starting Out with C++, 3 rd Edition 129 Program 3-37 The program's output is shown below. Program Output Reading dimensions of 5 rectangles from the file. Area of rectangle 1: 20 Area of rectangle 2: 35 Area of rectangle 3: 162 Area of rectangle 4: 120 Area of rectangle 5: 24 Done.


Download ppt "Starting Out with C++, 3 rd Edition 1 Chapter 3. Expressions and Interactivity."

Similar presentations


Ads by Google